Files
Gymnasium/README.md

57 lines
3.4 KiB
Markdown
Raw Normal View History

[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://pre-commit.com/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
2022-09-12 11:54:31 -04:00
<p align="center">
2022-10-07 11:00:25 -04:00
<img src="gymnasium-text.png" width="500px"/>
2022-09-12 11:54:31 -04:00
</p>
2022-10-07 11:00:25 -04:00
2022-10-13 20:23:24 -04:00
Gymnasium 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. This is a fork of OpenAI's [Gym](https://github.com/openai/gym) library by the maintainers (OpenAI handed over maintenance a few years ago to an outside team), and is where future maintenance will occur going forward
The documentation website is at [gymnasium.farama.org](https://gymnasium.farama.org), and we have a public discord server (which we also use to coordinate development work) that you can join here: https://discord.gg/bnJ6kubTg6
2022-04-07 19:36:05 -04:00
## Installation
2022-10-13 20:21:59 -04:00
To install the base Gymnasium library, use `pip install gymnasium`
2022-09-13 19:20:44 -04:00
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 gymnasium[atari]` or use `pip install gymnasium[all]` to install all dependencies.
2022-09-12 11:54:03 -04:00
We support and test for 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
2022-09-12 11:54:03 -04:00
The Gymnasium 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:
```python
2022-09-08 10:10:07 +01:00
import gymnasium as gym
env = gym.make("CartPole-v1")
2022-09-16 23:16:59 +01:00
observation, info = env.reset(seed=42)
for _ in range(1000):
action = env.action_space.sample()
2022-09-08 10:10:07 +01:00
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
observation, info = env.reset()
env.close()
```
## Notable Related Libraries
2022-10-03 15:46:30 -04:00
Please note that this is an incomplete list, and just includes libraries that the maintainers most commonly point newcommers to when asked for recommendations.
* [CleanRL](https://github.com/vwxyzjn/cleanrl) is a learning library based on the Gym API. It is designed to cater to newer people in the field and provides very good reference implementations.
2022-03-16 19:52:57 -04:00
* [Tianshou](https://github.com/thu-ml/tianshou) is a learning library that's geared towards very experienced users and is design to allow for ease in complex algorithm modifications.
2022-10-03 15:46:30 -04:00
* [RLlib](https://docs.ray.io/en/latest/rllib/index.html) is a learning library that allows for distributed training and inferencing and supports an extraordinarily large number of features throughout the reinforcement learning space.
* [PettingZoo](https://github.com/Farama-Foundation/PettingZoo) is like Gym, but for environments with multiple agents.
## Environment Versioning
2022-09-12 11:54:03 -04:00
Gymnasium 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. These inherent from Gym.
2022-05-24 08:47:51 -04:00
2022-09-12 11:54:03 -04:00
## Development Roadmap
2022-05-24 08:47:51 -04:00
2022-10-13 20:20:03 -04:00
We have a roadmap for future development work for Gymnasium available here: https://github.com/Farama-Foundation/Gymnasium/issues/12