
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