
RL Baslines3 Zoo est un cadre de formation pour l'apprentissage par renforcement (RL), en utilisant des lignes de base stables3.
Il fournit des scripts pour la formation, l'évaluation des agents, le réglage des hyperparamètres, le traçage des résultats et l'enregistrement des vidéos.
De plus, il comprend une collection d'hyperparamètres réglés pour des environnements communs et des algorithmes RL, et des agents formés avec ces paramètres.
Nous recherchons des contributeurs pour compléter la collection!
Objectifs de ce référentiel:
Il s'agit de la version SB3 du SB2 RL-ZOO original.
Remarque: Bien que SB3 et le zoo RL soient compatibles avec Numpy> = 2.0, vous aurez besoin de Numpy <2 pour exécuter des agents sur Pybullet envs (voir le numéro).
La documentation est disponible en ligne: https://rl-baselines3-zoo.readthedocs.io/
De la source:
pip install -e .
En tant que package Python:
pip install rl_zoo3
Remarque: vous pouvez faire python -m rl_zoo3.train à partir de n'importe quel dossier et vous avez accès à l'interface de ligne de commande rl_zoo3 , par exemple, rl_zoo3 train est équivalent à python train.py
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
Veuillez consulter la documentation Stable Baslines3 pour des alternatives pour installer des lignes de base stables3.
Les hyperparamètres pour chaque environnement sont définis dans hyperparameters/algo_name.yml .
Si l'environnement existe dans ce fichier, vous pouvez former un agent en utilisant:
python train.py --algo algo_name --env env_id
Évaluer l'agent toutes les 10000 étapes en utilisant 10 épisodes pour l'évaluation (en utilisant une seule évaluation env):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
Plus d'exemples sont disponibles dans la documentation.
Le zoo RL a une certaine intégration avec d'autres bibliothèques / services tels que des poids et des biais pour le suivi des expériences ou le visage étreint pour stocker / partager des modèles formés. Vous pouvez en savoir plus dans la section dédiée de la documentation.
Veuillez consulter la section dédiée de la documentation.
Remarque: Pour télécharger le dépôt avec les agents formés, vous devez utiliser git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo afin de clone le sous-module également.
Si l'agent formé existe, vous pouvez le voir en action en utilisant:
python enjoy.py --algo algo_name --env env_id
Par exemple, profitez de l'A2C sur une cassure pendant 5000 horodatages:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
Veuillez consulter la section dédiée de la documentation.
Veuillez consulter la section dédiée de la documentation.
Les performances finales des agents qualifiées se trouvent dans benchmark.md . Pour les calculer, exécutez simplement python -m rl_zoo3.benchmark .
La liste et les vidéos d'agents qualifiés peuvent être trouvés sur notre page de câlins: https://huggingface.co/sb3
Remarque: Ce n'est pas une référence quantitative car elle correspond à une seule exécution (CF Issue # 38). Cette référence est destinée à vérifier les performances de l'algorithme (maximales), à trouver des bogues potentiels et à permettre aux utilisateurs d'avoir accès à des agents pré-entraînés.
7 Jeux Atari d'Openai Benchmark (versions Noframeskip-V4).
| Algo RL | Amorce | Éclater | Enduro | Pong | Qbert | Plage | Spaceinvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Jeux ATARI supplémentaires (à terminer):
| Algo RL | Mspacman | Astéroïdes | Roadrunner |
|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ |
| Algo RL | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Pendule-v1 | Montagnecarcontinu-v0 |
|---|---|---|---|---|---|
| ARS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | N / A | N / A |
| QR-DQN | ✔️ | ✔️ | ✔️ | N / A | N / A |
| Ddpg | N / A | N / A | N / A | ✔️ | ✔️ |
| SAC | N / A | N / A | N / A | ✔️ | ✔️ |
| Td3 | N / A | N / A | N / A | ✔️ | ✔️ |
| Tqc | N / A | N / A | N / A | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Algo RL | Bipedalwalker-V3 | Lunarlander-V2 | Lunarlandercontinu-v2 | Bipedalwalkerhardcore-V3 | Carracing-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 | ✔️ | ||
| SAC | ✔️ | N / A | ✔️ | ✔️ | |
| Td3 | ✔️ | N / A | ✔️ | ✔️ | |
| Tqc | ✔️ | N / A | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ |
Voir https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs. Semblable à Mujoco envs mais avec un gratuit (Mujoco 2.1.0+ est maintenant gratuit!) Facile à installer Simulator: Pybullet. Nous utilisons la version BulletEnv-v0 .
Remarque: ces environnements sont dérivés de Roboschool et sont plus difficiles que la version Mujoco (voir le problème de Pybullet)
| Algo RL | Walker2d | Halfcheetah | Fourmi | Réalisatrice | Trémie | Humanoïde |
|---|---|---|---|---|---|---|
| ARS | ||||||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| SAC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Td3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet envers (suite)
| Algo RL | Minitaure | Minitaurduck | Inversé | Inversépendululumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| Ddpg | ||||
| SAC | ||||
| Td3 | ||||
| Tqc |
| Algo RL | Walker2d | Halfcheetah | Fourmi | Nageur | Trémie | Humanoïde |
|---|---|---|---|---|---|---|
| ARS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ||||||
| SAC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Td3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Voir https://gym.openai.com/envs/#robotics et # 71
Version Mujoco: 1.50.1.0 Gym Version: 0.18.0
Nous avons utilisé les environnements V1.
| Algo RL | Fetchreach | FetchPickandplace | Fetchpush | Glisser |
|---|---|---|---|---|
| Son + tqc | ✔️ | ✔️ | ✔️ | ✔️ |
Voir https://github.com/qgallouedec/panda-gym/.
Semblable à Mujoco Robotics envs mais avec un gratuit Simulator facile à installer: Pybullet.
Nous avons utilisé les environnements V1.
| Algo RL | Pandarence | Pandapickandplace | Pandapush | Pandaslide | Pandastack |
|---|---|---|---|---|---|
| Son + tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Voir https://github.com/farama-foundation/mininigrid. Une mise en œuvre de gymnase simple, légère et rapide du célèbre Gridworld.
| Algo RL | RADEMENT-RANDOM-5X5 | Quatre chambres | Clé de porte-5x5 | Multiroom-N4-S5 | Fetch-5x5-N2 | Gotodoor-5x5 | Putnear-6x6-n2 | RedBluedOors-6x6 | Salle verrouillée | Keyycorridors3r1 | Ouvrir | Obstrué Maze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ||||||||||||
| QR-DQN | ||||||||||||
| Trpo |
Il y a 22 groupes d'environnement (variations pour chacun) au total.
Vous pouvez former des agents en ligne à l'aide de Colab Notebook.
Le zoo n'est pas destiné à être exécuté à partir d'une session interactive (par exemple: cahiers Jupyter, Ipython), cependant, cela peut être fait en modifiant sys.argv et en ajoutant les arguments souhaités.
Exemple
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()Pour exécuter des tests, installez d'abord Pytest, puis:
make pytest
Idem pour la vérification de type avec pytype:
make type
Pour citer ce référentiel dans les publications:
@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} } ,
}Si vous avez formé un agent qui n'est pas présent dans le zoo RL, veuillez soumettre une demande de traction (contenant les hyperparamètres et le score également).
Nous tenons à remercier nos contributeurs: @iandanforth, @Tatsubori @ Shade5 @MCres, @erneStum, @qgalLouedec