
RL Baselines3 зоопарк - это учебная рамка для обучения подкреплению (RL), используя стабильные базовые исчисления3.
Он предоставляет сценарии для обучения, оценки агентов, настройки гиперпараметров, построения результатов и записи видео.
Кроме того, он включает в себя набор настроенных гиперпараметров для общей среды и алгоритмов RL, а также агенты, обученные этими настройками.
Мы ищем участников, чтобы завершить коллекцию!
Цели этого хранилища:
Это версия SB3 оригинального SB2 RL-Zoo.
Примечание. Хотя SB3 и RL зоопарк совместимы с Numpy> = 2,0, вам понадобится Numpy <2, чтобы запустить агенты на Envs Pybullet (см. Выпуск).
Документация доступна онлайн: https://rl-baselines3-zoo.readthedocs.io/
Из источника:
pip install -e .
Как пакет Python:
pip install rl_zoo3
Примечание rl_zoo3 train python train.py rl_zoo3 сделать python -m rl_zoo3.train
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
Пожалуйста, смотрите документацию по стабильной базовой основе3 для альтернатив для установки стабильных базовых показателей3.
Гиперпараметры для каждой среды определены в hyperparameters/algo_name.yml .
Если среда существует в этом файле, то вы можете обучить агента, используя:
python train.py --algo algo_name --env env_id
Оцените агента каждые 10000 шагов, используя 10 эпизодов для оценки (используя только одну оценку Env):
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
Например, наслаждайтесь A2C при прорыве во время 5000 временных точек:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
Пожалуйста, смотрите выделенный раздел документации.
Пожалуйста, смотрите выделенный раздел документации.
Окончательная производительность обученных агентов может быть найдена в benchmark.md . Чтобы вычислить их, просто запустите python -m rl_zoo3.benchmark .
Список и видео обученных агентов можно найти на нашей странице объятия: https://huggingface.co/sb3
Примечание. Это не количественный эталон, поскольку он соответствует только одному пробегу (CF выпуск № 38). Этот эталон предназначен для проверки алгоритма (максимальной) производительности, найти потенциальные ошибки, а также позволить пользователям иметь доступ к предварительному агентам.
7 Игр Atari от Bendalai Benchmark (версии Noframeskip-V4).
| RL Algo | Beamrider | Прорыв | Эндуро | Почетный | Qbert | SeaQuest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Дкн | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| QR-DQN | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Дополнительные игры Atari (будут завершены):
| RL Algo | Mspacman | Астероиды | Roadrunner |
|---|---|---|---|
| A2C | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ |
| Дкн | ✔ | ✔ | ✔ |
| QR-DQN | ✔ | ✔ | ✔ |
| RL Algo | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Маятник-V1 | Mountaincarcarcontinount-V0 |
|---|---|---|---|---|---|
| Арс | ✔ | ✔ | ✔ | ✔ | ✔ |
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ |
| Дкн | ✔ | ✔ | ✔ | 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 Algo | Bipedalwalker-V3 | Lunarlander-V2 | LunarlanderContinount-V2 | Bipedalwalkerhardcore-V3 | Carricing-V0 |
|---|---|---|---|---|---|
| Арс | ✔ | ✔ | |||
| A2C | ✔ | ✔ | ✔ | ✔ | |
| PPO | ✔ | ✔ | ✔ | ✔ | |
| Дкн | 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 | ✔ | ✔ |
См. Похоже на Mujoco Envs, но с бесплатно (Mujoco 2.1.0+ теперь бесплатно!) Легко установить симулятор: Pybulet. Мы используем версию BulletEnv-v0 .
Примечание. Эти среды получены из Roboschool и сложнее, чем версия Mujoco (см. Выпуск Pybullet)
| RL Algo | Walker2d | Получета | Муравей | Охват | Бункер | Гуманоид |
|---|---|---|---|---|---|---|
| Арс | ||||||
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | |
| DDPG | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Мешок | ✔ | ✔ | ✔ | ✔ | ✔ | |
| TD3 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| TQC | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Trpo | ✔ | ✔ | ✔ | ✔ | ✔ |
Pybullet envs (продолжение)
| RL Algo | Минитавра | Minitaurduck | Inverteddoublependulum | Invertedpendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| DDPG | ||||
| Мешок | ||||
| TD3 | ||||
| TQC |
| RL Algo | Walker2d | Получета | Муравей | Пловца | Бункер | Гуманоид |
|---|---|---|---|---|---|---|
| Арс | ✔ | ✔ | ✔ | ✔ | ✔ | |
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | |
| DDPG | ||||||
| Мешок | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TD3 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TQC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Trpo | ✔ | ✔ | ✔ | ✔ | ✔ |
Смотрите https://gym.openai.com/envs/#robotics и #71
Версия Mujoco: 1.50.1.0.
Мы использовали среды V1.
| RL Algo | FetchReach | FetchPickandPlace | Fetchpush | FetchSlide |
|---|---|---|---|---|
| Ее+TQC | ✔ | ✔ | ✔ | ✔ |
Смотрите https://github.com/qgallouedec/panda-gym/.
Похоже на Envs Mujoco Robotics, но с свободный Легко установить симулятор: Pybullet.
Мы использовали среды V1.
| RL Algo | Pandareach | Pandapickand Place | Пандапуш | Пандаслид | Pandastack |
|---|---|---|---|---|---|
| Ее+TQC | ✔ | ✔ | ✔ | ✔ | ✔ |
Смотрите https://github.com/farama-foundation/minigrid. Простая, легкая и быстрая спортивная среда реализация знаменитого сетчатого мира.
| RL Algo | Пустой проводник-5x5 | Четырехмеры | Дверная клавиша-5х5 | MultiRoom-N4-S5 | Fetch-5x5-N2 | Gotodoor-5x5 | Путнар-6x6-N2 | Redbluedoors-6x6 | Запертая комната | KeyCorridors3r1 | Разблокировать | Obructedmaze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Дкн | ||||||||||||
| 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