gym README

The project's README from github.com/openai/gym. As one markdown file: README.md.

pre-commit Code style: black

Important Notice

The team that has been maintaining Gym since 2021 has moved all future development to Gymnasium, a drop in replacement for Gym (import gymnasium as gym), and Gym will not be receiving any future updates. Please switch over to Gymnasium as soon as you're able to do so. If you'd like to read more about the story behind this switch, please check out this blog post.

Gym

Gym is an open source Python library for developing and comparing reinforcement learning algorithms by providing a standard API to communicate between learning algorithms and environments, as well as a standard set of environments compliant with that API. Since its release, Gym's API has become the field standard for doing this.

Gym documentation website is at https://www.gymlibrary.dev/, and you can propose fixes and changes to it here.

Gym also has a discord server for development purposes that you can join here: https://discord.gg/nHg2JRN489

Installation

To install the base Gym library, use pip install gym.

This does not include dependencies for all families of environments (there's a massive number, and some can be problematic to install on certain systems). You can install these dependencies for one family like pip install gym[atari] or use pip install gym[all] to install all dependencies.

We support Python 3.7, 3.8, 3.9 and 3.10 on Linux and macOS. We will accept PRs related to Windows, but do not officially support it.

API

The Gym API's API models environments as simple Python env classes. Creating environment instances and interacting with them is very simple- here's an example using the "CartPole-v1" environment:

import gym
env = gym.make("CartPole-v1")
observation, info = env.reset(seed=42)

for _ in range(1000):
    action = env.action_space.sample()
    observation, reward, terminated, truncated, info = env.step(action)

    if terminated or truncated:
        observation, info = env.reset()
env.close()

Please note that this is an incomplete list, and just includes libraries that the maintainers most commonly point newcommers to when asked for recommendations.

Environment Versioning

Gym keeps strict versioning for reproducibility reasons. All environments end in a suffix like "_v0". When changes are made to environments that might impact learning results, the number is increased by one to prevent potential confusion.

MuJoCo Environments

The latest "_v4" and future versions of the MuJoCo environments will no longer depend on mujoco-py. Instead mujoco will be the required dependency for future gym MuJoCo environment versions. Old gym MuJoCo environment versions that depend on mujoco-py will still be kept but unmaintained. To install the dependencies for the latest gym MuJoCo environments use pip install gym[mujoco]. Dependencies for old MuJoCo environments can still be installed by pip install gym[mujoco_py].

Citation

A whitepaper from when Gym just came out is available https://arxiv.org/pdf/1606.01540, and can be cited with the following bibtex entry:

@misc{1606.01540,
  Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},
  Title = {OpenAI Gym},
  Year = {2016},
  Eprint = {arXiv:1606.01540},
}

Release Notes

There used to be release notes for all the new Gym versions here. New release notes are being moved to releases page on GitHub, like most other libraries do. Old notes can be viewed here.

gym (openai/gym)

Searching Database…

37.2K ·GitHub
archived
Что это такое?Gym — это open source-библиотека на Python для разработки и сравнения алгоритмов обучения с подкреплением. Она предоставляет стандартный API, через который алгоритмы обучения взаимодействуют со средами, а также стандартный набор сред, построенных на этом API.
Это библиотека, которую я использую в своём коде, или отдельная программа?Это библиотека Python, которую вы импортируете в свой обучающий код, а не отдельное приложение. Среды реализованы как обычные классы Python — вы создаёте экземпляр среды, например 'CartPole-v1', и работаете с ним.
Какие версии Python и какие операционные системы поддерживаются?Python 3.7, 3.8, 3.9 и 3.10 на Linux и macOS. Pull request'ы для Windows принимаются, но официально Windows не поддерживается.
Gym до сих пор активно поддерживается?Нет — репозиторий архивирован. Команда сопровождающих перенесла всю дальнейшую разработку в Gymnasium, который заменяет Gym без изменений в коде (import gymnasium as gym). Gym больше не будет получать обновления, поэтому новые проекты лучше начинать с Gymnasium.
Как выглядит работа со средой?Вы создаёте экземпляр среды как объект класса Python, например 'CartPole-v1', и взаимодействуете с ним через стандартный API. У сред строгие суффиксы версий, чтобы эксперименты оставались воспроизводимыми.
С какими библиотеками для обучения с подкреплением его можно сочетать?CleanRL — с понятными эталонными реализациями для начинающих, Tianshou — для опытных пользователей, которые настраивают алгоритмы, RLlib — для распределённого обучения и инференса, и PettingZoo — для сред с несколькими агентами.
Почему у названий сред есть версии вроде 'v0'?Строгое версионирование ради воспроизводимости: если изменение в среде может повлиять на результаты обучения, номер версии увеличивают, чтобы результаты не сравнивались незаметно между разным поведением сред.
Что изменилось со средами MuJoCo?Начиная с v4 они зависят от mujoco вместо mujoco-py; устанавливаются командой pip install gym[mujoco]. Старые версии на основе mujoco-py по-прежнему доступны через gym[mujocopy], но не поддерживаются.
Creator
openai
Size
7 MB
Stars
37.2K
Age
10y
Commits · 90 Days