Skip to main content

gym-dmc is a gym wrapper around DeepMind Control Suite domains.

Project description

Link to other OpenAI Gym Plugins:

  • gym-sawyer

  • gym-toy-nav

Update Log

  • 2024-03-25: Return np.Array from env.render() function

  • 2022-01-13: Add space_dtype for overriding the dtype for the state and action spaces. Default to None, need to set to float/np.float32 for pytorch_SAC implementation.

  • 2022-01-11: Added a env._get_obs() method to allow one to obtain the observation after resetting the environment. Version: ``v0.2.1``

Installation

The dm_control dependency relies on lower versions of setuptools and wheel. Downgrade to fix the installation error.

pip install setuptools==65.5.0
pip install wheel==0.38.4
pip install gym-dmc

How To Use

Usage pattern:

import gym

env = gym.make("dmc:Pendulum-swingup-v1")

For the full list of environments, you can print:

from dm_control.suite import ALL_TASKS

print(*ALL_TASKS, sep="\n")

# Out[2]: ('acrobot', 'swingup')
#         ('acrobot', 'swingup_sparse')
...

We register all of these environments using the following pattern:

acrobot task “swingup_sparse” becomes dmc:Acrobot-swingup_sparse-v1

You can see the usage pattern in https://github.com/geyang/gym_dmc/blob/master/specs/test_gym_dmc.py:

env = gym.make('dmc:Walker-walk-v1', frame_skip=4, space_dtype=np.float32)
assert env.action_space.dtype is np.float32
assert env.observation_space.dtype is np.float32

env = gym.make('dmc:Walker-walk-v1', frame_skip=4)
assert env._max_episode_steps == 250
assert env.reset().shape == (24,)

env = gym.make('dmc:Walker-walk-v1', from_pixels=True, frame_skip=4)
assert env._max_episode_steps == 250

env = gym.make('dmc:Cartpole-balance-v1', from_pixels=True, frame_skip=8)
assert env._max_episode_steps == 125
assert env.reset().shape == (3, 84, 84)

env = gym.make('dmc:Cartpole-balance-v1', from_pixels=True, frame_skip=8, channels_first=False)
assert env._max_episode_steps == 125
assert env.reset().shape == (84, 84, 3)

env = gym.make('dmc:Cartpole-balance-v1', from_pixels=True, frame_skip=8, channels_first=False, gray_scale=True)
assert env._max_episode_steps == 125
assert env.reset().shape == (84, 84, 1)

Note, the ``max_episode_steps`` is calculated based on the ``frame_skip``. All DeepMind control domains terminate after 1000 simulation steps. So for frame_skip=4, the max_episode_steps should be 250.

Built with :heart: by Ge Yang

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

gym_dmc-0.3.0-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file gym_dmc-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: gym_dmc-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.8.17

File hashes

Hashes for gym_dmc-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7111fe0fefefcf745ad04290c2adae69216f447d6aacbebe202276a5bcd1a574
MD5 ae82fb0ca7f3b411a64cb2e3f6553cb3
BLAKE2b-256 24331bc98e3079108937854d9f990007bddd7108fc16981130e59faa164790f0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page