VLN-CE
VLN-CE copied to clipboard
KeyError: 'instruction'
I have successfully run python run.py --exp-config vlnce_baselines/config/nonlearning.yaml --run-type train
and got "data/checkpoints/ckpt.x.pth".
But an error occurred when I run python run.py --exp-config vlnce_baselines/config/nonlearning.yaml --run-type eval
,
I0414 23:24:12.502465 9994 simulator.py:146] Loaded navmesh data/scene_datasets/mp3d/2azQ1b91cZZ/2azQ1b91cZZ.navmesh
2021-04-14 23:24:12,506 Initializing task VLN-v0
2021-04-14 23:24:16,634 Loaded weights from checkpoint: data/checkpoints/ckpt.0.pth
2021-04-14 23:24:16,635 Finished setting up actor critic model.
Traceback (most recent call last):
File "/home/wangzihao/VLN-CE/run.py", line 86, in <module>
main()
File "/home/wangzihao/VLN-CE/run.py", line 41, in main
run_exp(**vars(args))
File "/home/wangzihao/VLN-CE/run.py", line 80, in run_exp
trainer.eval()
File "/home/wangzihao/hab015/lab/habitat_baselines/common/base_trainer.py", line 109, in eval
checkpoint_index=prev_ckpt_ind,
File "/home/wangzihao/VLN-CE/vlnce_baselines/dagger_trainer.py", line 807, in _eval_checkpoint
observations, config.TASK_CONFIG.TASK.INSTRUCTION_SENSOR_UUID
File "/home/wangzihao/VLN-CE/vlnce_baselines/common/utils.py", line 25, in transform_obs
instruction_sensor_uuid
KeyError: 'instruction'
Exception ignored in: <bound method VectorEnv.__del__ of <habitat.core.vector_env.VectorEnv object at 0x7f4415a2d9e8>>
Traceback (most recent call last):
File "/home/wangzihao/hab015/lab/habitat/core/vector_env.py", line 518, in __del__
self.close()
File "/home/wangzihao/hab015/lab/habitat/core/vector_env.py", line 400, in close
write_fn((CLOSE_COMMAND, None))
File "/home/wangzihao/.conda/envs/hab015/lib/python3.6/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/wangzihao/.conda/envs/hab015/lib/python3.6/multiprocessing/connection.py", line 404, in _send_bytes
self._send(header + buf)
File "/home/wangzihao/.conda/envs/hab015/lib/python3.6/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe
When I debugged, I found that the dict variable observations in line 806 of "dagger_trainer.py" had no key instruction
, only keys rgb,depth
in it.
Further,I found that the dict variable observations_spaces line 139 of "habitat/core/vector_env.py" differed between train
and eval
, keys rgb,depth,instruction,progress,vln_oracle_action_sensor
in train
but keys rgb,depth
in eval
.
What's wrong with the command?
have you figured it out?