
RL BASELINE3动物园是使用稳定的基线3的训练框架(RL)3。
它提供了用于培训,评估代理,调整超参数,绘制结果和录制视频的脚本。
此外,它还包括针对常见环境和RL算法的调整超参数的集合,以及经过这些设置训练的代理。
我们正在寻找完成收藏的贡献者!
该存储库的目标:
这是原始SB2 RL-ZOO的SB3版本。
注意:尽管SB3和RL动物园与Numpy> = 2.0兼容,但您需要Numpy <2才能在Pybullet Envs上运行代理(请参阅问题)。
文档可在线获得:https://rl-baselines3-zoo.readthedocs.io/
来自来源:
pip install -e .
作为Python包:
pip install rl_zoo3
注意:您可以从python train.py文件夹中进行python -m rl_zoo3.train rl_zoo3 train rl_zoo3
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
请参阅稳定的BASELINE3文档以进行安装稳定基线的替代方案3。
每个环境的超参数均在hyperparameters/algo_name.yml中定义。
如果环境存在于此文件中,则可以使用以下方式使用以下方式培训代理
python train.py --algo algo_name --env env_id
使用10集评估每10000个步骤评估一次代理(仅使用一个评估环境):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
文档中提供了更多示例。
RL动物园与其他图书馆/服务(例如重量和偏见)进行了一些集成,用于实验跟踪或拥抱面孔,用于存储/共享训练有素的模型。您可以在文档的专用部分中找到更多信息。
请参阅文档的专用部分。
注意:要使用训练有素的代理下载仓库,您必须使用git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo也可以克隆子模块。
如果训练有素的代理存在,那么您可以使用以下方式在行动中看到它:
python enjoy.py --algo algo_name --env env_id
例如,在5000个时间段的突破中享受A2C:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
请参阅文档的专用部分。
请参阅文档的专用部分。
可以在benchmark.md中找到训练有素的代理商的最终性能。要计算它们,只需运行python -m rl_zoo3.benchmark 。
可以在我们的HuggingFace页面上找到训练代理的列表和视频:https://huggingface.co/sb3
注意:这不是定量基准,因为它仅对应于一次运行(CF问题#38)。该基准旨在检查算法(最大)性能,查找潜在的错误,还允许用户可以访问预验证的代理。
7个来自OpenAI基准的Atari游戏(Noframeskip-V4版本)。
| RL算法 | Beamrider | 突破 | Enduro | 乒乓球 | Qbert | Seaquest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
其他Atari游戏(要完成):
| RL算法 | MSPACMAN | 小行星 | Roadrunner |
|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ |
| RL算法 | Cartpole-V1 | MountainCar-V0 | Acrobot-V1 | 摆-V1 | 山脉连续-V0 |
|---|---|---|---|---|---|
| ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ | N/A。 | N/A。 |
| QR-DQN | ✔️ | ✔️ | ✔️ | N/A。 | N/A。 |
| DDPG | N/A。 | N/A。 | N/A。 | ✔️ | ✔️ |
| 囊 | N/A。 | N/A。 | N/A。 | ✔️ | ✔️ |
| TD3 | N/A。 | N/A。 | N/A。 | ✔️ | ✔️ |
| TQC | N/A。 | N/A。 | N/A。 | ✔️ | ✔️ |
| trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| RL算法 | BipedalWalker-V3 | Lunarlander-V2 | lunarlanderconcontinuun-v2 | BIPEDALWALKERHARDCORE-V3 | 卡拉奇-V0 |
|---|---|---|---|---|---|
| ars | ✔️ | ✔️ | |||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | |
| DQN | N/A。 | ✔️ | N/A。 | N/A。 | N/A。 |
| QR-DQN | N/A。 | ✔️ | N/A。 | N/A。 | N/A。 |
| DDPG | ✔️ | N/A。 | ✔️ | ||
| 囊 | ✔️ | N/A。 | ✔️ | ✔️ | |
| TD3 | ✔️ | N/A。 | ✔️ | ✔️ | |
| TQC | ✔️ | N/A。 | ✔️ | ✔️ | |
| trpo | ✔️ | ✔️ |
请参阅https://github.com/bulletphysics/bullet3/tree/master/master/examples/pybullet/gym/pybullet_envs。与Mujoco Envs类似自由的(Mujoco 2.1.0+现在免费!)易于安装模拟器:Pybullet。我们正在使用BulletEnv-v0版本。
注意:这些环境来自Roboschool,并且比Mujoco版本更难(请参阅Pybullet Issue)
| RL算法 | Walker2d | Halfcheetah | 蚂蚁 | 接触者 | 料斗 | 人形生物 |
|---|---|---|---|---|---|---|
| ars | ||||||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| DDPG | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| 囊 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet Envs(续)
| RL算法 | 迷你龙 | 微型龙 | 反向倾斜 | 倒数 |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| DDPG | ||||
| 囊 | ||||
| TD3 | ||||
| TQC |
| RL算法 | Walker2d | Halfcheetah | 蚂蚁 | 游泳者 | 料斗 | 人形生物 |
|---|---|---|---|---|---|---|
| ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| DDPG | ||||||
| 囊 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
请参阅https://gym.openai.com/envs/#robotics和#71
Mujoco版本:1.50.1.0健身版:0.18.0
我们使用了V1环境。
| RL算法 | fetchreach | 取方 | 提取 | 捕捞滑坡 |
|---|---|---|---|---|
| 她的+TQC | ✔️ | ✔️ | ✔️ | ✔️ |
请参阅https://github.com/qgallouedec/panda-gym/。
类似于Mujoco Robotics Envs,但有一个自由的易于安装的模拟器:pybullet。
我们使用了V1环境。
| RL算法 | Pandareach | Pandapickandplace | Pandapush | Pandaslide | Pandastack |
|---|---|---|---|---|---|
| 她的+TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
请参阅https://github.com/farama-foundation/minigrid。著名的网格世界的简单,轻巧且快速的健身环境实现。
| RL算法 | 空运5x5 | 四个房间 | porkey-5x5 | Multiroom-N4-S5 | 提取5x5-n2 | gotodoor-5x5 | Putnear-6x6-N2 | Redbluedoors-6x6 | 上锁 | KeyCorridors3R1 | 开锁 | 阻塞2DLH |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ||||||||||||
| QR-DQN | ||||||||||||
| trpo |
总共有22个环境组(每个变化)。
您可以使用COLAB笔记本在线培训代理商。
动物园并不是要从交互式会话(例如:jupyter笔记本,ipython)执行,但是,可以通过修改sys.argv并添加所需的参数来完成。
例子
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()要运行测试,请首先安装pytest,然后:
make pytest
与Pytype进行类型检查相同:
make type
在出版物中引用该存储库:
@misc { rl-zoo3 ,
author = { Raffin, Antonin } ,
title = { RL Baselines3 Zoo } ,
year = { 2020 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/DLR-RM/rl-baselines3-zoo} } ,
}如果您训练了RL动物园中不存在的代理商,请提交拉动请求(包含超参数和分数)。
我们要感谢我们的贡献者:@iandanforth,@tatsubori @shade5 @mcres,@ernestum,@qgallouedec