decisionforce/CoPO

When I run train_copo, I get an error during the run

thedieiscast opened this issue · 6 comments

2023-06-19 21:22:48,277 ERROR trial_runner.py:1088 -- Trial CoPOTrainer_MultiAgentIntersectionEnv_0e9dd_00000: Error processing event.
ray.exceptions.RayTaskError(AttributeError): ray::CoPOTrainer.save() (pid=22984, ip=127.0.0.1, repr=CoPOTrainer)
File "python\ray_raylet.pyx", line 830, in ray._raylet.execute_task
File "python\ray_raylet.pyx", line 834, in ray._raylet.execute_task
File "python\ray_raylet.pyx", line 780, in ray._raylet.execute_task.function_executor
File "D:\Anaconda\envs\copo\lib\site-packages\ray_private\function_manager.py", line 674, in actor_method_executor
return method(__ray_actor, *args, **kwargs)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\util\tracing\tracing_helper.py", line 466, in _resume_span
return method(self, *_args, **_kwargs)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\tune\trainable\trainable.py", line 473, in save
checkpoint_dict_or_path = self.save_checkpoint(checkpoint_dir)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\util\tracing\tracing_helper.py", line 466, in _resume_span
return method(self, *_args, **_kwargs)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\algorithms\algorithm.py", line 1959, in save_checkpoint
state = self.getstate()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\util\tracing\tracing_helper.py", line 466, in _resume_span
return method(self, *_args, **_kwargs)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\algorithms\algorithm.py", line 2382, in getstate
state["worker"] = self.workers.local_worker().get_state()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\evaluation\rollout_worker.py", line 1602, in get_state
policy_states[pid] = self.policy_map[pid].get_state()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\policy\torch_mixins.py", line 98, in get_state
state = super().get_state()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\policy\torch_policy_v2.py", line 907, in get_state
state = super().get_state()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\policy\policy.py", line 917, in get_state
state["policy_spec"] = policy_spec.serialize()
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\policy\policy.py", line 133, in serialize
"action_space": space_to_dict(self.action_space),
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\utils\serialization.py", line 140, in space_to_dict
d = {"space": gym_space_to_dict(space)}
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\utils\serialization.py", line 119, in gym_space_to_dict
return _box(space)
File "D:\Anaconda\envs\copo\lib\site-packages\ray\rllib\utils\serialization.py", line 62, in _box
"shape": sp._shape, # shape is a tuple.
AttributeError: 'Box' object has no attribute '_shape'

Why this error occurs and how to correct it

hi @thedieiscast, I have met the same problem. Have you solved it?

hi, I've got the same problem with you. After making sure the gym == 1.19.0 and maetdrive==0.2.5, it still doesn't work. Have you successfully solved this problem?

Hi, it seems that making gym==0.20.0 is effective.I don't the reason(Probably because there is something wrong with the gym library itself, and they fixed this bug in the later version SB3 breaks with gym==0.20.0 ), but it does solve the problem, here is the pip package version list of my conda env:
aiosignal 1.3.1
attrs 23.1.0
certifi 2023.7.22
charset-normalizer 3.3.2
click 8.1.7
click-plugins 1.1.1
cligj 0.7.2
cloudpickle 1.6.0
colorama 0.4.6
contourpy 1.1.1
cycler 0.12.1
distlib 0.3.7
dm-tree 0.1.8
exceptiongroup 1.1.3
Farama-Notifications 0.0.4
filelock 3.13.1
fiona 1.9.5
fonttools 4.43.1
frozenlist 1.4.0
geopandas 0.13.2
grpcio 1.59.2
gym 0.19.0
gym-notices 0.0.8
idna 3.4
imageio 2.31.6
importlib-metadata 6.8.0
importlib-resources 6.1.0
iniconfig 2.0.0
jax-jumpy 1.0.0
jsonschema 4.19.2
jsonschema-specifications 2023.7.1
kiwisolver 1.4.5
lazy_loader 0.3
lxml 4.9.3
lz4 4.3.2
markdown-it-py 3.0.0
matplotlib 3.6.3
mdurl 0.1.2
metadrive-simulator 0.2.5
msgpack 1.0.7
networkx 3.1
numpy 1.19.3
opencv-python 4.8.1.78
opencv-python-headless 4.8.1.78
packaging 23.2
Panda3D 1.10.13
panda3d-gltf 0.13
panda3d-simplepbr 0.10
pandas 1.4.4
Pillow 8.3.2
pip 23.3.1
pkgutil_resolve_name 1.3.10
platformdirs 3.11.0
pluggy 1.3.0
progressbar 2.5
protobuf 4.25.0
psutil 5.9.6
pygame 2.5.2
pyglet 1.5.15
Pygments 2.16.1
pyparsing 3.1.1
pyproj 3.5.0
pytest 7.4.3
python-dateutil 2.8.2
pytz 2023.3.post1
PyWavelets 1.4.1
PyYAML 6.0.1
ray 2.2.0
referencing 0.30.2
requests 2.31.0
rich 13.6.0
rpds-py 0.10.6
scikit-image 0.21.0
scipy 1.10.1
seaborn 0.12.2
setuptools 63.2.0
shapely 2.0.2
six 1.16.0
tabulate 0.9.0
tensorboardX 2.6.2.2
tifffile 2023.7.10
tomli 2.0.1
torch 1.13.1+cu116
torchaudio 0.13.1+cu116
tqdm 4.66.1
typer 0.9.0
typing_extensions 4.8.0
tzdata 2023.3
urllib3 2.0.7
virtualenv 20.24.6
wheel 0.36.0
yapf 0.40.2
zipp 3.17.0

Hi I've updated the dependencies requirement. Our code support MetaDrive 0.2.5 instead of the latest version. Here is the result when I ran with MetaDrive-0.2.5:

https://github.com/decisionforce/CoPO/tree/main/benchmarks/MetaDrive-0.2.5

To provide more information to you, this is the environment that I succesfully run code:

Package                  Version    Editable project location
------------------------ ---------- -----------------------------
absl-py                  2.1.0
aiohttp                  3.8.6
aiohttp-cors             0.7.0
aioredis                 2.0.1
aiosignal                1.3.1
annotated-types          0.5.0
anyio                    3.7.1
astunparse               1.6.3
async-timeout            4.0.3
asynctest                0.13.0
atari-py                 0.2.6
attrs                    23.2.0
blessed                  1.20.0
cachetools               5.3.2
certifi                  2022.12.7
charset-normalizer       3.3.2
click                    8.1.7
cloudpickle              1.6.0
colorama                 0.4.6
colorful                 0.5.6
copo                     0.0.0      /home/zhenghao/CoPO/copo_code
cycler                   0.11.0
decorator                5.1.1
distlib                  0.3.8
dm-tree                  0.1.8
exceptiongroup           1.2.0
filelock                 3.12.2
Flask                    2.2.5
fonttools                4.38.0
frozenlist               1.3.3
gast                     0.3.3
google-api-core          2.15.0
google-auth              2.27.0
google-auth-oauthlib     0.4.6
google-pasta             0.2.0
googleapis-common-protos 1.62.0
gpustat                  1.1.1
grpcio                   1.60.0
gym                      0.23.1
gym-notices              0.0.8
h11                      0.14.0
h5py                     2.10.0
idna                     3.6
imageio                  2.31.2
importlib-metadata       6.7.0
importlib-resources      5.12.0
iniconfig                2.0.0
itsdangerous             2.1.2
Jinja2                   3.1.3
jsonschema               4.17.3
Keras-Preprocessing      1.1.2
kiwisolver               1.4.5
kubernetes               29.0.0
lz4                      4.3.2
Markdown                 3.4.4
markdown-it-py           2.2.0
MarkupSafe               2.1.4
matplotlib               3.5.3
mdurl                    0.1.2
metadrive-simulator      0.2.5
msgpack                  1.0.5
multidict                6.0.4
networkx                 2.6.3
numpy                    1.21.6
nvidia-cublas-cu11       11.10.3.66
nvidia-cuda-nvrtc-cu11   11.7.99
nvidia-cuda-runtime-cu11 11.7.99
nvidia-cudnn-cu11        8.5.0.96
nvidia-ml-py             12.535.133
oauthlib                 3.2.2
opencensus               0.11.4
opencensus-context       0.1.3
opt-einsum               3.3.0
packaging                23.2
Panda3D                  1.10.14
panda3d-gltf             0.14
panda3d-simplepbr        0.10
pandas                   1.3.5
Pillow                   9.5.0
pip                      22.3.1
pkgutil_resolve_name     1.3.10
platformdirs             4.0.0
pluggy                   1.2.0
prometheus-client        0.17.1
protobuf                 3.20.3
psutil                   5.9.8
py-spy                   0.3.14
pyasn1                   0.5.1
pyasn1-modules           0.3.0
pydantic                 1.9.0
pydantic_core            2.14.6
pygame                   2.5.2
Pygments                 2.17.2
pyparsing                3.1.1
pyrsistent               0.19.3
pytest                   7.4.4
python-dateutil          2.8.2
pytz                     2023.4
PyWavelets               1.3.0
PyYAML                   6.0.1
ray                      2.2.0
redis                    5.0.1
requests                 2.31.0
requests-oauthlib        1.3.1
rich                     13.7.0
rsa                      4.9
scikit-image             0.19.3
scipy                    1.7.3
seaborn                  0.12.2
setuptools               65.6.3
six                      1.16.0
sniffio                  1.3.0
starlette                0.29.0
tabulate                 0.9.0
tensorboard              2.11.2
tensorboard-data-server  0.6.1
tensorboard-plugin-wit   1.8.1
tensorboardX             2.6.2.2
tensorflow               2.3.1
tensorflow-estimator     2.3.0
tensorflow-probability   0.11.1
termcolor                2.3.0
tifffile                 2021.11.2
tomli                    2.0.1
torch                    1.13.1
tqdm                     4.66.1
typer                    0.9.0
typing_extensions        4.7.1
urllib3                  2.0.7
uvicorn                  0.22.0
virtualenv               20.25.0
wcwidth                  0.2.13
websocket-client         1.6.1
Werkzeug                 2.2.3
wheel                    0.38.4
wrapt                    1.16.0
yapf                     0.30.0
yarl                     1.9.4
zipp                     3.15.0