Предупреждение: этот репозиторий больше не поддерживается, пожалуйста, используйте зоопарк RL-Baselines3 для современной версии, питаемой на стабильных Baselines3

Коллекция обученных агентов обучения подкреплению (RL) с настроенными гиперпараметрами с использованием стабильных базовых показателей.
Мы ищем участников, чтобы завершить коллекцию!
Цели этого хранилища:
Если обученный агент существует, то вы можете увидеть его в действии, используя:
python enjoy.py --algo algo_name --env env_id
Например, наслаждайтесь A2C при прорыве во время 5000 временных точек:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder trained_agents/ -n 5000
Если вы сами обучили агента, вам нужно сделать:
# exp-id 0 corresponds to the last experiment, otherwise, you can specify another ID
python enjoy.py --algo algo_name --env env_id -f logs/ --exp-id 0
Чтобы загрузить лучшую модель (при использовании среды оценки):
python enjoy.py --algo algo_name --env env_id -f logs/ --exp-id 1 --load-best
Гиперпараметры для каждой среды определены в hyperparameters/algo_name.yml .
Если среда существует в этом файле, то вы можете обучить агента, используя:
python train.py --algo algo_name --env env_id
Например (с поддержкой Tensorboard):
python train.py --algo ppo2 --env CartPole-v1 --tensorboard-log /tmp/stable-baselines/
Оцените агента каждые 10000 шагов, используя 10 эпизодов для оценки:
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10
Сохраните контрольную точку агента каждые 100000 шагов:
python train.py --algo td3 --env HalfCheetahBulletEnv-v0 --save-freq 100000
Продолжайте обучение (здесь, нагрузка, предварительно предопределяемое агентом для прорыва, и продолжайте обучение на 5000 шагов):
python train.py --algo a2c --env BreakoutNoFrameskip-v4 -i trained_agents/a2c/BreakoutNoFrameskip-v4.pkl -n 5000
Примечание. При обучении TRPO вы должны использовать mpirun для включения многопроцессы:
mpirun -n 16 python train.py --algo trpo --env BreakoutNoFrameskip-v4
Мы используем Optuna для оптимизации гиперпараметров.
Примечание. Поиск гиперпараметра пока не реализован для Acer и DQN на данный момент. При использовании PresiveHallingPruner («вдвое») вы должны указать --n-jobs > 1
Бюджет 1000 испытаний с максимум 50000 шагов:
python train.py --algo ppo2 --env MountainCar-v0 -n 50000 -optimize --n-trials 1000 --n-jobs 2
--sampler tpe --pruner median
Вы можете указать в конфигурации Hyperparameter One или несколько обертков для использования в окружающей среде:
Для одной обертки:
env_wrapper: gym_minigrid.wrappers.FlatObsWrapper
Для нескольких, укажите список:
env_wrapper:
- utils.wrappers.DoneOnSuccessWrapper:
reward_offset: 1.0
- utils.wrappers.TimeFeatureWrapper
Обратите внимание, что вы также можете легко указать параметры.
Вы можете указать аргументы ключевых слов, чтобы перейти к конструктору ENV в командной строке, используя --env-kwargs :
python enjoy.py --algo ppo2 --env MountainCar-v0 --env-kwargs goal_velocity:10
Вы можете легко перезаписать гиперпараметры в командной строке, используя --hyperparams :
python train.py --algo a2c --env MountainCarContinuous-v0 --hyperparams learning_rate:0.001 policy_kwargs:"dict(net_arch=[64, 64])"
Запишите 1000 шагов:
python -m utils.record_video --algo ppo2 --env BipedalWalkerHardcore-v2 -n 1000
Оценки можно найти в benchmark.md . Чтобы вычислить их, просто запустите python -m utils.benchmark .
7 Игр Atari от Bendalai Benchmark (версии Noframeskip-V4).
| RL Algo | Beamrider | Разразиться | Эндуро | Почетный | Qbert | SeaQuest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Застенчивый | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Acktr | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Дкн | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| Trpo |
Дополнительные игры Atari (будут завершены):
| RL Algo | Mspacman |
|---|---|
| A2C | ✔ |
| Застенчивый | ✔ |
| Acktr | ✔ |
| PPO2 | ✔ |
| Дкн | ✔ |
| RL Algo | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Маятник-V0 | Mountaincarcarcontinount-V0 |
|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ |
| Застенчивый | ✔ | ✔ | ✔ | N/a | N/a |
| Acktr | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO2 | ✔ | ✔ | ✔ | ✔ | ✔ |
| Дкн | ✔ | ✔ | ✔ | N/a | N/a |
| DDPG | N/a | N/a | N/a | ✔ | ✔ |
| Мешок | N/a | N/a | N/a | ✔ | ✔ |
| TD3 | N/a | N/a | N/a | ✔ | ✔ |
| Trpo | ✔ | ✔ | ✔ | ✔ |
| RL Algo | Bipedalwalker-V2 | Lunarlander-V2 | LunarlanderContinount-V2 | Bipedalwalkerhardcore-V2 | Carricing-V0 |
|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | |
| Застенчивый | N/a | ✔ | N/a | N/a | N/a |
| Acktr | ✔ | ✔ | ✔ | ✔ | |
| PPO2 | ✔ | ✔ | ✔ | ✔ | |
| Дкн | N/a | ✔ | N/a | N/a | N/a |
| DDPG | ✔ | N/a | ✔ | ||
| Мешок | ✔ | N/a | ✔ | ✔ | |
| TD3 | ✔ | N/a | ✔ | ||
| Trpo | ✔ | ✔ | ✔ |
См. Похоже на Mujoco Envs, но с бесплатным симулятором: Pybullet. Мы используем версию BulletEnv-v0 .
Примечание. Эти среды получены из Roboschool и намного сложнее, чем версия Mujoco (см. Проблема Pybullet)
| RL Algo | Walker2d | Получета | Муравей | Охват | Бункер | Гуманоид |
|---|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ||
| Acktr | ✔ | |||||
| PPO2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| DDPG | ✔ | ✔ | ✔ | |||
| Мешок | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| TD3 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| Trpo | ✔ | ✔ | ✔ | ✔ |
Pybullet envs (продолжение)
| RL Algo | Минитавра | Minitaurduck | Inverteddoublependulum | Invertedpendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| Acktr | ||||
| PPO2 | ✔ | ✔ | ✔ | ✔ |
| DDPG | ||||
| Мешок | ✔ | ✔ | ||
| TD3 | ✔ | ✔ | ||
| Trpo |
См. Https://github.com/maximecb/gym-minigrid Простая, легкая и быстрая спорт-среда реализация знаменитого сетчатого мира.
| RL Algo | Пустой | Четырехмеры | Дверная клавиша | Многолетняя | Принести |
|---|---|---|---|---|---|
| A2C | |||||
| PPO2 | ✔ | ✔ | |||
| DDPG | |||||
| Мешок | |||||
| Trpo |
Всего есть 19 групп окружающей среды (вариации для каждого).
Обратите внимание, что вам необходимо указать-Gym-Packages Gym_minigrid с помощью wiol.py и train.py, поскольку это не стандартная среда спортзала, а также установка модуля пользовательского гимнастического пакета или размещать его в Python Path.
pip install gym-minigrid
python train.py --algo ppo2 --env MiniGrid-DoorKey-5x5-v0 --gym-packages gym_minigrid
Это делает то же самое, что и:
import gym_minigridКроме того, вам может потребоваться указать обертку среды спортзала в гиперпараметрах, так как минигридная среда имеет пространство наблюдения за диктами, которое на данный момент не поддерживается стабильными базерами.
MiniGrid-DoorKey-5x5-v0:
env_wrapper: gym_minigrid.wrappers.FlatObsWrapper
Вы можете обучать агентов онлайн, используя ноутбук Colab.
Версия мин: стабильные базелины [MPI]> = 2.10.0
apt-get install swig cmake libopenmpi-dev zlib1g-dev ffmpeg
pip install -r requirements.txt
Пожалуйста, смотрите стабильные базовые показатели Readme для альтернатив.
Стройте изображение Docker (процессор):
./scripts/build_docker.sh
Графический процессор:
USE_GPU=True ./scripts/build_docker.sh
Потяните встроенное изображение Docker (процессор):
docker pull stablebaselines/rl-baselines-zoo-cpu
Изображение графического процессора:
docker pull stablebaselines/rl-baselines-zoo
Запустите скрипт на изображении Docker:
./scripts/run_docker_cpu.sh python train.py --algo ppo2 --env CartPole-v1
Чтобы запустить тесты, сначала установите Pytest, затем:
python -m pytest -v tests/
Написать этот репозиторий в публикациях:
@misc { rl-zoo ,
author = { Raffin, Antonin } ,
title = { RL Baselines Zoo } ,
year = { 2018 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/araffin/rl-baselines-zoo} } ,
}Если вы обучили агента, которого нет в зоопарке RL, пожалуйста, отправьте запрос на привлечение (содержащий гиперпараметры и счет).
Мы хотели бы поблагодарить наших участников: @iandanforth, @tatsubori @shade5