askforalfred / alfred

ALFRED - A Benchmark for Interpreting Grounded Instructions for Everyday Tasks
MIT License
379 stars 88 forks source link

Mismatch between high-level and low-level actions after preprocessing #123

Open RavenKiller opened 2 years ago

RavenKiller commented 2 years ago

Hello!

I'm new to ALFRED and trying to learn it. After reading #84, I find there is still a mismatch between high-level and low-level actions after preprocessing. For example, in pick_two_obj_and_place-AppleSliced-None-CounterTop-10/trial_T20190907_061009_396474, the generated low_to_high_idx is [..., 10, 11, 11, 13]. However, 13 is out of the bound of instr list and also exceeds the maximum high_idx in action_high (which is 12).

I'm not sure if it is a bug because this phenomenon does not cause problems when training baseline models. I think the reason is this line: https://github.com/askforalfred/alfred/blob/1898b83547b589b8635737929e04ee4f2f404177/data/preprocess.py#L212 which may be better like this:

conv['num']['action_low'][-1][0]['high_idx'] = conv['plan']['high_pddl'][-1]['high_idx'] - 1
MohitShridhar commented 2 years ago

@RavenKiller, sorry for the late reply.

I'll look into this when I get some time. But for now, yeah, if you visualize those high-level actions, and it makes sense to merge/discard them, then use your fix.