VLN-CE icon indicating copy to clipboard operation
VLN-CE copied to clipboard

KeyError: 'instruction'

Open EricWZH opened this issue 3 years ago • 1 comments

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?

EricWZH avatar Apr 14 '21 16:04 EricWZH

have you figured it out?

TikaToka avatar Sep 02 '23 15:09 TikaToka