PERINGATAN: Repositori ini tidak lagi dipertahankan, silakan gunakan kebun binatang RL-BASELINES3 untuk versi terbaru, ditenagai oleh stabil-baselines3

Kumpulan agen pembelajaran penguatan terlatih (RL), dengan hyperparameters yang disetel, menggunakan baseline yang stabil.
Kami mencari kontributor untuk menyelesaikan koleksi!
Tujuan repositori ini:
Jika agen terlatih ada, maka Anda dapat melihatnya beraksi menggunakan:
python enjoy.py --algo algo_name --env env_id
Misalnya, nikmati A2C saat breakout selama 5000 timesteps:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder trained_agents/ -n 5000
Jika Anda telah melatih agen sendiri, Anda perlu melakukan:
# 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
Untuk memuat model terbaik (saat menggunakan lingkungan evaluasi):
python enjoy.py --algo algo_name --env env_id -f logs/ --exp-id 1 --load-best
Hyperparameters untuk setiap lingkungan didefinisikan dalam hyperparameters/algo_name.yml .
Jika lingkungan ada dalam file ini, maka Anda dapat melatih agen menggunakan:
python train.py --algo algo_name --env env_id
Misalnya (dengan dukungan Tensorboard):
python train.py --algo ppo2 --env CartPole-v1 --tensorboard-log /tmp/stable-baselines/
Evaluasi agen setiap 10000 langkah menggunakan 10 episode untuk evaluasi:
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10
Simpan pos pemeriksaan agen setiap 100000 langkah:
python train.py --algo td3 --env HalfCheetahBulletEnv-v0 --save-freq 100000
Lanjutkan pelatihan (di sini, agen pretrained muat untuk pelarian dan lanjutkan pelatihan untuk 5000 langkah):
python train.py --algo a2c --env BreakoutNoFrameskip-v4 -i trained_agents/a2c/BreakoutNoFrameskip-v4.pkl -n 5000
Catatan: Saat melatih TRPO, Anda harus menggunakan mpirun untuk mengaktifkan multiprosesing:
mpirun -n 16 python train.py --algo trpo --env BreakoutNoFrameskip-v4
Kami menggunakan Optuna untuk mengoptimalkan hiperparameter.
Catatan: Pencarian HyperParameters tidak diimplementasikan untuk Acer dan DQN untuk saat ini. Saat menggunakan SuritivehalvingPruner ("separuh"), Anda harus menentukan --n-jobs > 1
Anggaran 1000 uji coba dengan maksimum 50000 langkah:
python train.py --algo ppo2 --env MountainCar-v0 -n 50000 -optimize --n-trials 1000 --n-jobs 2
--sampler tpe --pruner median
Anda dapat menentukan dalam konfigurasi hyperparameter satu atau lebih pembungkus untuk digunakan di sekitar lingkungan:
Untuk satu pembungkus:
env_wrapper: gym_minigrid.wrappers.FlatObsWrapper
Untuk beberapa, tentukan daftar:
env_wrapper:
- utils.wrappers.DoneOnSuccessWrapper:
reward_offset: 1.0
- utils.wrappers.TimeFeatureWrapper
Perhatikan bahwa Anda dapat dengan mudah menentukan parameter juga.
Anda dapat menentukan argumen kata kunci untuk diteruskan ke konstruktor Env di baris perintah, menggunakan --env-kwargs :
python enjoy.py --algo ppo2 --env MountainCar-v0 --env-kwargs goal_velocity:10
Anda dapat dengan mudah menimpa hyperparameters di baris perintah, menggunakan --hyperparams :
python train.py --algo a2c --env MountainCarContinuous-v0 --hyperparams learning_rate:0.001 policy_kwargs:"dict(net_arch=[64, 64])"
Rekam 1000 Langkah:
python -m utils.record_video --algo ppo2 --env BipedalWalkerHardcore-v2 -n 1000
Skor dapat ditemukan di benchmark.md . Untuk menghitungnya, cukup jalankan python -m utils.benchmark .
7 Game Atari dari Benchmark OpenAI (versi NOFRAMESKIP-V4).
| RL ALGO | Beamrider | Kesuksesan besar | Enduro | Pong | Qbert | Seaquest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TANAMAN ACER | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| ACKTR | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Ppo2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Trpo |
Permainan Atari Tambahan (harus diselesaikan):
| RL ALGO | MSPACMAN |
|---|---|
| A2C | ✔️ |
| TANAMAN ACER | ✔️ |
| ACKTR | ✔️ |
| Ppo2 | ✔️ |
| Dqn | ✔️ |
| RL ALGO | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Pendulum-V0 | Mountaincarcontinuous-V0 |
|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TANAMAN ACER | ✔️ | ✔️ | ✔️ | N/a | N/a |
| ACKTR | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Ppo2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | N/a | N/a |
| Ddpg | N/a | N/a | N/a | ✔️ | ✔️ |
| KANTUNG | N/a | N/a | N/a | ✔️ | ✔️ |
| TD3 | N/a | N/a | N/a | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ |
| RL ALGO | Bipedalwalker-V2 | Lunarlander-V2 | Lunarlandercontinuous-V2 | Bipedalwalkerhardcore-V2 | Carracing-V0 |
|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | |
| TANAMAN ACER | N/a | ✔️ | N/a | N/a | N/a |
| ACKTR | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ppo2 | ✔️ | ✔️ | ✔️ | ✔️ | |
| Dqn | N/a | ✔️ | N/a | N/a | N/a |
| Ddpg | ✔️ | N/a | ✔️ | ||
| KANTUNG | ✔️ | N/a | ✔️ | ✔️ | |
| TD3 | ✔️ | N/a | ✔️ | ||
| Trpo | ✔️ | ✔️ | ✔️ |
Lihat https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs. Mirip dengan Mujoco Envs tetapi dengan simulator gratis: pybullet. Kami menggunakan versi BulletEnv-v0 .
Catatan: Lingkungan tersebut berasal dari roboschool dan jauh lebih sulit daripada versi Mujoco (lihat masalah pybullet)
| RL ALGO | Walker2d | Halfcheetah | Semut | Pencapai | Hopper | Humanoid |
|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ||
| ACKTR | ✔️ | |||||
| Ppo2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Ddpg | ✔️ | ✔️ | ✔️ | |||
| KANTUNG | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet envs (lanjutan)
| RL ALGO | Minitaur | Minitaurduck | InvertedDoublePendulum | EnvertedPendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| ACKTR | ||||
| Ppo2 | ✔️ | ✔️ | ✔️ | ✔️ |
| Ddpg | ||||
| KANTUNG | ✔️ | ✔️ | ||
| TD3 | ✔️ | ✔️ | ||
| Trpo |
Lihat https://github.com/maximecb/gym-minigrid Lingkungan gym yang sederhana, ringan, dan cepat, implementasi GRIDWorld yang terkenal.
| RL ALGO | Kosong | Empat kamar | Doorkey | Multiroom | Mengambil |
|---|---|---|---|---|---|
| A2C | |||||
| Ppo2 | ✔️ | ✔️ | |||
| Ddpg | |||||
| KANTUNG | |||||
| Trpo |
Ada 19 kelompok lingkungan (variasi untuk masing -masing) secara total.
Perhatikan bahwa Anda perlu menentukan --gym-packages gym_minigrid dengan nikmati.py dan train.py karena ini bukan lingkungan gym standar, serta memasang modul paket gym khusus atau meletakkannya di jalur Python.
pip install gym-minigrid
python train.py --algo ppo2 --env MiniGrid-DoorKey-5x5-v0 --gym-packages gym_minigrid
Ini melakukan hal yang sama seperti:
import gym_minigridJuga, Anda mungkin perlu menentukan pembungkus lingkungan gym di hyperparameters, karena lingkungan minigrid memiliki ruang pengamatan dikt, yang tidak didukung oleh stableBaselines untuk saat ini.
MiniGrid-DoorKey-5x5-v0:
env_wrapper: gym_minigrid.wrappers.FlatObsWrapper
Anda dapat melatih agen online menggunakan Colab Notebook.
Versi Min: Stable-Baselines [MPI]> = 2.10.0
apt-get install swig cmake libopenmpi-dev zlib1g-dev ffmpeg
pip install -r requirements.txt
Silakan lihat readme baselines yang stabil untuk alternatif.
Bangun Gambar Docker (CPU):
./scripts/build_docker.sh
GPU:
USE_GPU=True ./scripts/build_docker.sh
Tarik Image Docker Built Built (CPU):
docker pull stablebaselines/rl-baselines-zoo-cpu
Gambar GPU:
docker pull stablebaselines/rl-baselines-zoo
Jalankan skrip di gambar Docker:
./scripts/run_docker_cpu.sh python train.py --algo ppo2 --env CartPole-v1
Untuk menjalankan tes, pertama -tama instal pytest, lalu:
python -m pytest -v tests/
Untuk mengutip repositori ini dalam publikasi:
@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} } ,
}Jika Anda melatih agen yang tidak ada di kebun binatang RL, silakan kirimkan permintaan tarik (berisi hyperparameters dan skor juga).
Kami ingin berterima kasih kepada kontributor kami: @ianforth, @tatsubori @shade5