
O zoológico do RL Baselines3 é uma estrutura de treinamento para o aprendizado de reforço (RL), usando linhas de base estáveis3.
Ele fornece scripts para treinamento, avaliação de agentes, ajuste hiperparâmetros, plotando resultados e gravação de vídeos.
Além disso, inclui uma coleção de hiperparâmetros ajustados para ambientes comuns e algoritmos RL e agentes treinados com essas configurações.
Estamos à procura de colaboradores para concluir a coleção!
Objetivos deste repositório:
Esta é a versão SB3 do SB2 RL-ZOO original.
NOTA: Embora o SB3 e o zoológico RL sejam compatíveis com Numpy> = 2.0, você precisará do Numpy <2 para executar agentes no pybullet Envs (ver edição).
A documentação está disponível online: https://rl-baselines3-zoo.readthedocs.io/
Da fonte:
pip install -e .
Como um pacote Python:
pip install rl_zoo3
Nota: Você pode fazer python -m rl_zoo3.train de qualquer pasta e tem acesso à interface da linha de comando rl_zoo3 , por exemplo, rl_zoo3 train é equivalente ao python train.py
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
Consulte a documentação estável de Baselines3 para alternativas para instalar linhas de base estáveis3.
Os hiperparâmetros para cada ambiente são definidos em hyperparameters/algo_name.yml .
Se o ambiente existir neste arquivo, você poderá treinar um agente usando:
python train.py --algo algo_name --env env_id
Avalie o agente a cada 10000 etapas usando 10 episódios para avaliação (usando apenas uma avaliação Env):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
Mais exemplos estão disponíveis na documentação.
O zoológico da RL tem alguma integração com outras bibliotecas/serviços, como pesos e vieses, para rastrear ou abraçar o rosto para armazenar/compartilhar modelos treinados. Você pode descobrir mais na seção dedicada da documentação.
Consulte a seção dedicada da documentação.
Nota: Para baixar o repositório com os agentes treinados, você deve usar git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo para clonar o submódulo também.
Se o agente treinado existir, você poderá vê -lo em ação usando:
python enjoy.py --algo algo_name --env env_id
Por exemplo, aproveite o A2C em Breakout durante 5000 Timestesps:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
Consulte a seção dedicada da documentação.
Consulte a seção dedicada da documentação.
O desempenho final dos agentes treinados pode ser encontrado em benchmark.md . Para calculá -los, basta executar python -m rl_zoo3.benchmark .
Lista e vídeos de agentes treinados podem ser encontrados em nossa página Huggingface: https://huggingface.co/sb3
Nota: Este não é um benchmark quantitativo, pois corresponde a apenas uma execução (CF Edição #38). Este benchmark destina -se a verificar o desempenho do algoritmo (máximo), encontrar bugs em potencial e também permitir que os usuários tenham acesso a agentes pré -treinados.
7 jogos Atari do OpenAI Benchmark (versões noframeskip-v4).
| RL Algo | Beamrider | Saia | Enduro | Pong | Qbert | SeaQuest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Qr-dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Jogos Atari adicionais (a serem concluídos):
| RL Algo | MSPACMAN | Asteróides | Roadrunner |
|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ |
| Qr-dqn | ✔️ | ✔️ | ✔️ |
| RL Algo | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Pendulum-V1 | MountainCarcontinuous-V0 |
|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | N / D | N / D |
| Qr-dqn | ✔️ | ✔️ | ✔️ | N / D | N / D |
| Ddpg | N / D | N / D | N / D | ✔️ | ✔️ |
| SACO | N / D | N / D | N / D | ✔️ | ✔️ |
| TD3 | N / D | N / D | N / D | ✔️ | ✔️ |
| TQC | N / D | N / D | N / D | ✔️ | ✔️ |
| TRPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| RL Algo | Bipedalwalker-v3 | Lunarlander-V2 | LunarLanderContinuous-V2 | Bipedalwalkerhardcore-v3 | TrapaceR-V0 |
|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | |||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | |
| Dqn | N / D | ✔️ | N / D | N / D | N / D |
| Qr-dqn | N / D | ✔️ | N / D | N / D | N / D |
| Ddpg | ✔️ | N / D | ✔️ | ||
| SACO | ✔️ | N / D | ✔️ | ✔️ | |
| TD3 | ✔️ | N / D | ✔️ | ✔️ | |
| TQC | ✔️ | N / D | ✔️ | ✔️ | |
| TRPO | ✔️ | ✔️ |
Consulte https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs. Semelhante ao Mujoco Envs, mas com um livre (Mujoco 2.1.0+ agora está gratuito!) Fácil de instalar simulador: pybullet. Estamos usando a versão BulletEnv-v0 .
Nota: Esses ambientes são derivados do Roboschool e são mais difíceis que a versão Mujoco (consulte a edição de Pybullet)
| RL Algo | Walker2d | Halfheetah | Formiga | Reacher | Tremonha | Humanóide |
|---|---|---|---|---|---|---|
| Ars | ||||||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| SACO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TRPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet Envs (continuação)
| RL Algo | Minitaur | Minitaurduck | InvertedDoublependulum | InvertedPendulumSwingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| Ddpg | ||||
| SACO | ||||
| TD3 | ||||
| TQC |
| RL Algo | Walker2d | Halfheetah | Formiga | Nadador | Tremonha | Humanóide |
|---|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ||||||
| SACO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TRPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Veja https://gym.openai.com/envs/#robotics e #71
MUJOCO Versão: 1.50.1.0 Versão da academia: 0.18.0
Usamos os ambientes V1.
| RL Algo | Fetchreach | FetchPickandPlace | Fetchpush | Busca |
|---|---|---|---|---|
| Her+TQC | ✔️ | ✔️ | ✔️ | ✔️ |
Consulte https://github.com/qgallouedec/panda-gym/.
Semelhante ao Mujoco Robotics Envs, mas com um livre Simulador fácil de instalar: pybullet.
Usamos os ambientes V1.
| RL Algo | Pandarach | PANDAPICKandPlace | Pandapush | Pandaslide | Pandastack |
|---|---|---|---|---|---|
| Her+TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Veja https://github.com/farama-foundation/minigrid. Uma implementação simples, leve e rápida de ambientes de ginástica do famoso gridworld.
| RL Algo | Random-5x5 vazio | Quartos | Doorkey-5x5 | Multiroom-N4-S5 | Fetch-5x5-N2 | Gotodoor-5x5 | Putnear-6x6-n2 | RedBluedoors-6x6 | Lockedroom | KeyCORRIDORS3R1 | Desbloquear | ObstrucuDmaze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ||||||||||||
| Qr-dqn | ||||||||||||
| TRPO |
Existem 22 grupos ambientais (variações para cada) no total.
Você pode treinar agentes on -line usando o Colab Notebook.
O zoológico não deve ser executado a partir de uma sessão interativa (por exemplo: notebooks Jupyter, IPython), no entanto, isso pode ser feito modificando sys.argv e adicionando os argumentos desejados.
Exemplo
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()Para executar testes, primeiro instale o Pytest e depois:
make pytest
O mesmo para verificação de tipo com pytype:
make type
Para citar este repositório em publicações:
@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} } ,
}Se você treinou um agente que não está presente no zoológico da RL, envie uma solicitação de tração (contendo os hiperparâmetros e a pontuação também).
Gostaríamos de agradecer aos nossos colaboradores: @iandanforth, @tatsubori @shade5 @mcres, @ernestum, @qgallouedec