ybgdgh / L3MVN

Leveraging Large Language Models for Visual Target Navigation
https://sites.google.com/view/l3mvn
77 stars 13 forks source link

IndexError: list index out of range #9

Closed WangJuan6 closed 11 months ago

WangJuan6 commented 11 months ago

Hi authors,

Thanks for the great work!

When I evaluate the pre-trained model, I get an error:

Traceback (most recent call last):
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/data/projects/projects_llm/L3MVN/envs/habitat/utils/vector_env.py", line 202, in _worker_env
    observations = env.reset()
  File "/data/projects/projects_llm/L3MVN/agents/sem_exp.py", line 91, in reset
    obs, info = super().reset()
  File "/data/projects/projects_llm/L3MVN/envs/habitat/objectgoal_env21.py", line 150, in reset
    semantic = self._preprocess_semantic(obs["semantic"])
  File "/data/projects/projects_llm/L3MVN/envs/habitat/objectgoal_env21.py", line 218, in _preprocess_semantic
    if self.scene.objects[se[i]].category.name() in self.hm3d_semantic_mapping:
IndexError: list index out of range
[15:18:51:150791]:[Sim] Simulator.cpp(65)::~Simulator : Deconstructing Simulator
[15:18:51:152375]:[Scene] SemanticScene.h(47)::~SemanticScene : Deconstructing SemanticScene
Traceback (most recent call last):
  File "/data/projects/projects_llm/L3MVN/main_llm_vis.py", line 1010, in <module>
    main()
  File "/data/projects/projects_llm/L3MVN/main_llm_vis.py", line 151, in main
    obs, infos = envs.reset()
  File "/data/projects/projects_llm/L3MVN/envs/__init__.py", line 27, in reset
    obs, info = self.venv.reset()
  File "/data/projects/projects_llm/L3MVN/envs/habitat/utils/vector_env.py", line 340, in reset
    results.append(read_fn())
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 407, in _recv_bytes
    buf = self._recv(4)
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 383, in _recv
    raise EOFError
EOFError
Exception ignored in: <function VectorEnv.__del__ at 0x7f77d3c905f0>
Traceback (most recent call last):
  File "/data/projects/projects_llm/L3MVN/envs/habitat/utils/vector_env.py", line 549, in __del__
    self.close()
  File "/data/projects/projects_llm/L3MVN/envs/habitat/utils/vector_env.py", line 413, in close
    read_fn()
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 407, in _recv_bytes
    buf = self._recv(4)
  File "/home/wj/anaconda3/envs/l3mvn/lib/python3.7/multiprocessing/connection.py", line 383, in _recv
    raise EOFError
EOFError: 

Can you help me to solve this problem?

Thanks

ybgdgh commented 11 months ago

It looks like the se[i] out of the index of scene.object. you can try to fix it this way:

for i in range(len(se)):
    if se[i] >= len(self.scene.objects):
        hm3d_category_name = "Unknown"
    elif self.scene.objects[se[i]].category.name() in self.hm3d_semantic_mapping:
        hm3d_category_name = self.hm3d_semantic_mapping[self.scene.objects[se[i]].category.name()]
    else:
        hm3d_category_name = self.scene.objects[se[i]].category.name()
    ...

I will fix this problem and update the repo as soon as possible. Thanks.

WangJuan6 commented 11 months ago

It works, Thank you!