<h1 align="center">
<a href="https://yellow-cdn.veclightyear.com/835a84d5/2a34392f-ae3f-48b2-bd27-5970dbd15ff8.png">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/2a34392f-ae3f-48b2-bd27-5970dbd15ff8.png?raw=true" width="215" /></a><br>
<b>JAX中的强化学习环境 🌍</b><br>
</h1>
<p align="center">
<a href="https://pypi.python.org/pypi/gymnax">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/955ebf74-3ad4-40af-9a6f-aaf547161ffc.svg?style=flat-square" /></a>
<a href= "https://badge.fury.io/py/gymnax">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/73158e47-46e2-4ddd-902f-44d5162942c9.svg" /></a>
<a href= "https://github.com/RobertTLange/gymnax/blob/master/LICENSE.md">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/53d70f62-418b-4b9b-bd7b-7357122defaa.svg" /></a>
<a href= "https://codecov.io/gh/RobertTLange/gymnax">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/c27a074d-3eb9-47e2-aff8-ce050c30f8af.svg?token=OKKPDRIQJR" /></a>
<a href= "https://github.com/psf/black">
<img src="https://yellow-cdn.veclightyear.com/835a84d5/2bf6dbd6-e45d-46c6-8332-3a3ae2996bf6.svg" /></a>
</p>
你是否厌倦了基于CPU的缓慢RL环境进程?你是否想利用大规模矢量化来进行高吞吐量的RL实验?gymnax
将jit
和vmap
/pmap
的强大功能引入经典的gym API。它支持多种不同的环境,包括经典控制、bsuite、MinAtar以及一系列经典/元强化学习任务。gymnax
允许显式控制环境设置(随机种子或超参数),从而实现不同配置的加速和并行化rollouts(例如用于元强化学习)。通过在加速器上同时执行环境和策略,它促进了Podracer论文(Hessel et al., 2021)中提出的Anakin子架构和高度分布式的进化优化(例如使用evosax
)。我们在gymnax-blines
中提供了PPO和ES的训练与检查点。从这里开始 👉
。
基本gymnax
API使用 🍲
import jax
import gymnax
rng = jax.random.PRNGKey(0)
rng, key_reset, key_act, key_step = jax.random.split(rng, 4)
# 实例化环境及其设置
env, env_params = gymnax.make("Pendulum-v1")
# 重置环境
obs, state = env.reset(key_reset, env_params)
# 采样随机动作
action = env.action_space(env_params).sample(key_act)
# 执行步骤转换
n_obs, n_state, reward, done, _ = env.step(key_step, state, action, env_params)
已实现的加速环境 🏎️
环境名称 | 参考文献 | 源代码 | 🤖 检查点(回报) | 每百万步秒数 🦶 <br /> A100 (2k 🌎) |
---|
Acrobot-v1 | Brockman等人 (2016) | 点击 | PPO, ES (回报: -80) | 0.07 |
Pendulum-v1 | Brockman等人 (2016) | 点击 | PPO, ES (回报: -130) | 0.07 |
CartPole-v1 | Brockman等人 (2016) | 点击 | PPO, ES (回报: 500) | 0.05 |
MountainCar-v0 | Brockman等人 (2016) | 点击 | PPO, ES (回报: -118) | 0.07 |
MountainCarContinuous-v0 | Brockman等人 (2016) | 点击 | PPO, ES (回报: 92) | 0.09 |
| | | | |
Asterix-MinAtar | Young和Tian (2019) | 点击 | PPO (回报: 15) | 0.92 |
Breakout-MinAtar | Young和Tian (2019) | 点击 | PPO (回报: 28) | 0.19 |
Freeway-MinAtar | Young和Tian (2019) | 点击 | PPO (回报: 58) | 0.87 |
SpaceInvaders-MinAtar | Young和Tian (2019) | 点击 | PPO (回报: 131) | 0.33 |
| | | | |
Catch-bsuite | Osband等人 (2019) | 点击 | PPO, ES (回报: 1) | 0.15 |
DeepSea-bsuite | Osband等人 (2019) | 点击 | PPO, ES (回报: 0) | 0.22 |
MemoryChain-bsuite | Osband等人 (2019) | 点击 | PPO, ES (回报: 0.1) | 0.13 |
UmbrellaChain-bsuite | Osband等人 (2019) | 点击 | PPO, ES (回报: 1) | 0.08 |
DiscountingChain-bsuite | Osband等人 (2019) | 点击 | PPO, ES (回报: 1.1) | 0.06 |
MNISTBandit-bsuite | Osband等人 (2019) | 点击 | - | - |
SimpleBandit-bsuite | Osband等人 (2019) | 点击 | - | - |
| | | | |
FourRooms-misc | Sutton等人 (1999) | 点击 | PPO, ES (回报: 1) | 0.07 |
MetaMaze-misc | Micconi等人 (2020) | 点击 | ES (回报: 32) | 0.09 |
PointRobot-misc | Dorfman等人 (2021) | 点击 | ES (R: 10) | 0.08 |
BernoulliBandit-misc | Wang等人 (2017) | |