Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyError: 'render.modes' in GymEnv wrapping "CartPole-vX" #2321

Open
AndreaFinazzi opened this issue Apr 14, 2022 · 2 comments
Open

KeyError: 'render.modes' in GymEnv wrapping "CartPole-vX" #2321

AndreaFinazzi opened this issue Apr 14, 2022 · 2 comments

Comments

@AndreaFinazzi
Copy link

Apparently, classic control environments in Gym have a different key for render modes in env.metadata.

In fact:

>>> import gym
>>> env = gym.make('CartPole-v1')
>>> env.metadata
{'render_modes': ['human', 'rgb_array'], 'render_fps': 50}

While in the garage wrapper it expects to find env.metadata['render.modes'], as it is for other environments.

self._render_modes = self._env.metadata['render.modes']

This results in a KeyError, unsurprisingly:

$ python examples/tf/trpo_cartpole.py 
Traceback (most recent call last):
  File "examples/tf/trpo_cartpole.py", line 57, in <module>
    trpo_cartpole()
  File "/home/***/.local/lib/python3.8/site-packages/garage/experiment/experiment.py", line 369, in __call__
    result = self.function(ctxt, **kwargs)
  File "examples/tf/trpo_cartpole.py", line 33, in trpo_cartpole
    env = GymEnv('CartPole-v1')
  File "/home/***/.local/lib/python3.8/site-packages/garage/envs/gym_env.py", line 147, in __init__
    self._render_modes = self._env.metadata['render.modes']
KeyError: 'render.modes'

Is it a problem of my version mix? I run with:

  • garage==2021.3.0
  • gym==0.23.1

Thank you all for the great work!

@causeim
Copy link

causeim commented Apr 30, 2022

I solved same problem by downgrading gym to 0.21.0

pip uninstall gym
pip install gym==0.21.0

@krzentner
Copy link
Contributor

Garage setup.py specifies gym version 0.17.2. I wouldn't be surprised if some other versions work, but they've been changing the API a lot recently and I unfortunately don't have time to keep the wrapper up to date. Thanks for the the info @causeim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants