强化学习的一个标准API和一系列符合该API的参考环境(以前称为Gym)。
项目描述
Gymnasium是一个开源的Python库,通过提供标准API以在学习和环境之间进行通信,以及符合该API的标准环境集,来开发和比较强化学习算法。这是由维护者(OpenAI在几年前将其维护权移交给一个外部团队)从OpenAI的Gym库分叉而来,并将是未来维护发生的地方。
文档网站位于 gymnasium.farama.org,我们还有一个公开的 Discord 服务器(我们也用它来协调开发工作),您可以通过以下链接加入:https://discord.gg/bnJ6kubTg6
环境
Gymnasium 包括以下一系列环境,以及大量的第三方环境
- 经典控制 - 这些是基于现实世界问题和物理的经典强化学习。
- Box2D - 这些环境都涉及基于物理控制的玩具游戏,使用基于 box2d 的物理和基于 PyGame 的渲染。
- Toy Text - 这些环境设计得非常简单,具有小型的离散状态和动作空间,因此易于学习。因此,它们适用于调试强化学习算法的实现。
- MuJoCo - 基于物理引擎的环境,具有多关节控制,比 Box2D 环境更复杂。
- Atari - 通过 Stella 和 Arcade Learning Environment 模拟的 57 个 Atari 2600 环境,这些环境具有高复杂度,适合智能体学习。
- 第三方 - 已创建了多个与 Gymnasium API 兼容的环境。请注意软件创建时使用的版本,并在必要时在
gymnasium.make
中使用apply_env_compatibility
。
安装
要安装基础 Gymnasium 库,请使用 pip install gymnasium
这不包括所有环境系列的依赖项(数量巨大,其中一些可能在某些系统上安装有问题)。您可以安装某个系列如 pip install "gymnasium[atari]"
的依赖项,或使用 pip install "gymnasium[all]"
安装所有依赖项。
我们支持并测试了 Python 3.8、3.9、3.10、3.11 在 Linux 和 macOS 上的兼容性。我们将接受与 Windows 相关的 PR,但不官方支持。
API
Gymnasium API 将环境建模为简单的 Python env
类。创建环境实例并与它们交互非常简单 - 这里是一个使用 "CartPole-v1" 环境的示例
import gymnasium as 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()
相关的著名库
请注意,这是一个不完整列表,仅包括维护者在新手询问推荐时最常指向的库。
- CleanRL 是一个基于 Gymnasium API 的学习库。它旨在满足该领域新人的需求,并提供非常好的参考实现。
- PettingZoo 是 Gymnasium 的多智能体版本,实现了一系列环境,例如多智能体 Atari 环境。
- Farama 基金会还有一个由 Gymnasium 相同团队维护的许多其他 环境 集合,它们使用 Gymnasium API。
- Comet 是一个免费的 ML-Ops 工具,可跟踪奖励、指标、超参数和代码,用于 ML 训练运行。Comet 与 Gymnasium 有易于使用的集成,以下是如何一起使用的 教程!Comet 是 Farama 基金会的赞助商!
环境版本控制
出于可重复性的原因,Gymnasium 对版本控制非常严格。所有环境都以 "-v0" 类似的后缀结束。当对可能影响学习结果的环境进行更改时,数字会增加 1 以防止可能的混淆。这些是从 Gym 继承的。
开发路线图
我们为Gymnasium的未来开发工作提供了一个路线图,可供在此处查看:https://github.com/Farama-Foundation/Gymnasium/issues/12
支持Gymnasium的发展
如果您在经济上能够这样做,并且希望支持Gymnasium的发展,请加入社区中的其他人,通过向我们捐款。
引用
您可以引用Gymnasium如下
@misc{towers_gymnasium_2023,
title = {Gymnasium},
url = {https://zenodo.org/record/8127025},
abstract = {An API standard for single-agent reinforcement learning environments, with popular reference environments and related utilities (formerly Gym)},
urldate = {2023-07-08},
publisher = {Zenodo},
author = {Towers, Mark and Terry, Jordan K. and Kwiatkowski, Ariel and Balis, John U. and Cola, Gianluca de and Deleu, Tristan and Goulão, Manuel and Kallinteris, Andreas and KG, Arjun and Krimmel, Markus and Perez-Vicente, Rodrigo and Pierré, Andrea and Schulhoff, Sander and Tai, Jun Jet and Shen, Andrew Tan Jin and Younis, Omar G.},
month = mar,
year = {2023},
doi = {10.5281/zenodo.8127026},
}
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
gymnasium-0.29.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a532752efcb7590478b1cc7aa04f608eb7a2fdad5570cd217b66b6a35274bb1 |
|
MD5 | 59497c4e5df5dd791411423befb3e011 |
|
BLAKE2b-256 | 0df85699ddb3e1c4f6d97b8930e573074849b921da8374fccd141f0f3a9bd713 |
gymnasium-0.29.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 61c3384b5575985bb7f85e43213bcb40f36fcdff388cae6bc229304c71f2843e |
|
MD5 | 502b8e05d70c048f5a3865bdb63040da |
|
BLAKE2b-256 | a84d3cbfd81ed84db450dbe73a89afcd8bc405273918415649ac6683356afe92 |