
RL Baselines3 Zoo ist ein Trainingsrahmen für die Verstärkungslernen (RL) unter Verwendung stabiler Baselines3.
Es bietet Skripte zum Training, zur Bewertung von Agenten, zum Einstellen von Hyperparametern, zum Aufzeichnen von Ergebnissen und zum Aufnehmen von Videos.
Darüber hinaus enthält es eine Sammlung abgestimmter Hyperparameter für gemeinsame Umgebungen und RL -Algorithmen sowie mit diesen Einstellungen ausgebildete Agenten.
Wir suchen nach Mitwirkenden , um die Sammlung zu vervollständigen!
Ziele dieses Repositorys:
Dies ist die SB3-Version des ursprünglichen SB2 RL-Zoo.
HINWEIS: Obwohl SB3 und der RL -Zoo mit Numpy> = 2.0 kompatibel sind, benötigen Sie Numpy <2, um Agenten auf Pybullet Envs zu betreiben (siehe Ausgabe).
Die Dokumentation ist online verfügbar: https://rl-baselines3-zoo.readthedocs.io/
Aus Quelle:
pip install -e .
Als Python -Paket:
pip install rl_zoo3
Hinweis: Sie können python -m rl_zoo3.train aus jedem Ordner ausführen und haben Zugriff auf die Befehlszeilenschnittstelle rl_zoo3 , beispielsweise rl_zoo3 train entsprechen python train.py
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
In stabilen Baselines3 -Dokumentationen finden Sie Alternativen zur Installation stabiler Baselines3.
Die Hyperparameter für jede Umgebung sind in hyperparameters/algo_name.yml definiert.
Wenn die Umgebung in dieser Datei vorhanden ist, können Sie einen Agenten verwenden, indem Sie:
python train.py --algo algo_name --env env_id
Bewerten Sie den Agenten alle 10000 Schritte mit 10 Episoden zur Bewertung (unter Verwendung von nur einer Bewertung):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
Weitere Beispiele finden Sie in der Dokumentation.
Der RL Zoo hat eine gewisse Integration mit anderen Bibliotheken/Diensten wie Gewichten und Vorurteilen für das Versuchsverfolgung oder das Umarmungsgesicht für die Aufbewahrung/Freigabe geschulte Modelle. Sie können im speziellen Abschnitt der Dokumentation mehr erfahren.
Bitte beachten Sie den dedizierten Abschnitt der Dokumentation.
HINWEIS: Um das Repo mit den trainierten Agenten herunterzuladen, müssen Sie git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo verwenden, um auch das Submodul zu klonen.
Wenn der ausgebildete Agent existiert, können Sie es in Aktion mit:
python enjoy.py --algo algo_name --env env_id
Genießen Sie beispielsweise A2C auf Breakout während 5000 Timesteps:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
Bitte beachten Sie den dedizierten Abschnitt der Dokumentation.
Bitte beachten Sie den dedizierten Abschnitt der Dokumentation.
Die endgültige Leistung der ausgebildeten Wirkstoffe finden Sie in benchmark.md . Um sie zu berechnen, führen Sie einfach python -m rl_zoo3.benchmark aus.
Liste und Videos von trainierten Agenten finden Sie auf unserer Seite mit der Umarmung: https://huggingface.co/sb3
Hinweis: Dies ist kein quantitativer Benchmark, da er nur einem Lauf entspricht (vgl. Ausgabe Nr. 38). Dieser Benchmark soll Algorithmus (maximale) Leistung überprüfen, potenzielle Fehler finden und Benutzern ermöglichen, Zugriff auf vorbereitete Agenten zu haben.
7 Atari-Spiele von OpenAI Benchmark (Noframeskip-V4-Version).
| Rl Algo | Beamrider | Ausbruch | Enduro | Pong | Qbert | Seefahrer | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Qr-dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Zusätzliche Atari -Spiele (abgeschlossen werden):
| Rl Algo | Mspacman | Asteroiden | Roadrunner |
|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ |
| Qr-dqn | ✔️ | ✔️ | ✔️ |
| Rl Algo | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Pendel-V1 | Mountaincarcontinuous-V0 |
|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ✔️ | ✔️ | ✔️ | N / A | N / A |
| Qr-dqn | ✔️ | ✔️ | ✔️ | N / A | N / A |
| DDPG | N / A | N / A | N / A | ✔️ | ✔️ |
| SACK | N / A | N / A | N / A | ✔️ | ✔️ |
| Td3 | N / A | N / A | N / A | ✔️ | ✔️ |
| Tqc | N / A | N / A | N / A | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Rl Algo | Bipedalwalker-V3 | Mondländer-V2 | Lunarlandercontinuous-V2 | Bipedalwalkerhardcore-V3 | TRADING-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 | ✔️ | ||
| SACK | ✔️ | N / A | ✔️ | ✔️ | |
| Td3 | ✔️ | N / A | ✔️ | ✔️ | |
| Tqc | ✔️ | N / A | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ |
Siehe https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs. Ähnlich wie Mujoco Envs, aber mit a frei (Mujoco 2.1.0+ ist jetzt kostenlos!) Einfach zu installierende Simulator: Pybullet. Wir verwenden BulletEnv-v0 Version.
Hinweis: Diese Umgebungen stammen von RoboSchool und sind schwieriger als die Mujoco -Version (siehe Pybullet -Problem)
| Rl Algo | Walker2d | Halbscheet | Ameise | Reacher | Trichter | Humanoid |
|---|---|---|---|---|---|---|
| Ars | ||||||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| DDPG | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| SACK | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Td3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet Envs (Fortsetzung)
| Rl Algo | Minitaur | Minitaurduck | InvertedDoublePendulum | InvertedPendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| DDPG | ||||
| SACK | ||||
| Td3 | ||||
| Tqc |
| Rl Algo | Walker2d | Halbscheet | Ameise | Schwimmer | Trichter | Humanoid |
|---|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| DDPG | ||||||
| SACK | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Td3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Siehe https://gym.openai.com/envs/#robotics und #71
Mujoco -Version: 1.50.1.0 Fitnessstudioversion: 0.18.0
Wir haben die V1 -Umgebungen verwendet.
| Rl Algo | Fetchreach | Fetchpickandplace | Fetchpush | Fetchslide |
|---|---|---|---|---|
| Ihr+tqc | ✔️ | ✔️ | ✔️ | ✔️ |
Siehe https://github.com/qgallologeec/panda-gym/.
Ähnlich wie Mujoco Robotics Envs, aber mit a frei Einfach zu installierende Simulator: Pybullet.
Wir haben die V1 -Umgebungen verwendet.
| Rl Algo | Pandareach | Pandapickandplace | Pandapush | Pandaslide | Pandastack |
|---|---|---|---|---|---|
| Ihr+tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Siehe https://github.com/farama-foundation/minigrid. Eine einfache, leichte und schnelle Implementierung der Fitnessstudio -Umgebungen der berühmten Gridworld.
| Rl Algo | Leerer Random-5x5 | Vier Räume | Doorkey-5x5 | Multiroom-N4-S5 | Fetch-5x5-N2 | Gotodoor-5x5 | Putnear-6x6-N2 | Redbluedoors-6x6 | Sperrzimmer | KeyCorridors3R1 | Entsperren | BehinderungMaze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| DQN | ||||||||||||
| Qr-dqn | ||||||||||||
| Trpo |
Insgesamt gibt es 22 Umgebungsgruppen (jeweils Variationen).
Sie können Agenten online mit Colab Notebook schulen.
Der Zoo soll nicht aus einer interaktiven Sitzung ausgeführt werden (z. B. Jupyter -Notizbücher, Ipython). Dies kann jedoch durchgeführt werden, indem sys.argv geändert und die gewünschten Argumente hinzugefügt werden.
Beispiel
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()Um Tests auszuführen, installieren Sie zuerst PyTest und dann: dann:
make pytest
Gleiches gilt für die Typ -Überprüfung mit PyType:
make type
Um dieses Repository in Veröffentlichungen zu zitieren:
@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} } ,
}Wenn Sie einen Agenten geschult haben, der im RL -Zoo nicht vorhanden ist, senden Sie bitte eine Pull -Anfrage (mit den Hyperparametern und der Punktzahl).
Wir möchten unseren Mitwirkenden danken: @iandanforth, @tatsubori @Shade5 @Mcres, @ernestum, @qGaLouedec