
RL Baselines3 Zoo adalah kerangka kerja pelatihan untuk Penguatan Pembelajaran (RL), menggunakan baselines yang stabil3.
Ini menyediakan skrip untuk pelatihan, mengevaluasi agen, tuning hyperparameters, merencanakan hasil dan merekam video.
Selain itu, ini termasuk kumpulan hiperparameter yang disetel untuk lingkungan umum dan algoritma RL, dan agen yang dilatih dengan pengaturan tersebut.
Kami mencari kontributor untuk menyelesaikan koleksi!
Tujuan repositori ini:
Ini adalah versi SB3 dari SB2 RL-Zoo asli.
CATATAN: Meskipun SB3 dan RL Zoo kompatibel dengan numpy> = 2.0, Anda akan membutuhkan numpy <2 untuk menjalankan agen di pybullet envs (lihat masalah).
Dokumentasi tersedia secara online: https://rl-baselines3-zoo.readthedocs.io/
Dari sumber:
pip install -e .
Sebagai paket Python:
pip install rl_zoo3
Catatan: Anda dapat melakukan python -m rl_zoo3.train dari folder apa pun dan Anda memiliki akses ke antarmuka baris perintah rl_zoo3 , misalnya, rl_zoo3 train setara dengan python train.py
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
Silakan lihat dokumentasi Baselines3 yang stabil untuk alternatif untuk memasang baselines yang stabil3.
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
Evaluasi agen setiap 10000 langkah menggunakan 10 episode untuk evaluasi (hanya menggunakan satu evaluasi env):
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
Lebih banyak contoh tersedia dalam dokumentasi.
RL Zoo memiliki beberapa integrasi dengan perpustakaan/layanan lain seperti bobot & bias untuk pelacakan percobaan atau memeluk wajah untuk menyimpan/berbagi model terlatih. Anda dapat mengetahui lebih lanjut di bagian khusus dari dokumentasi.
Silakan lihat bagian khusus dari dokumentasi.
Catatan: Untuk mengunduh repo dengan agen terlatih, Anda harus menggunakan git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo untuk mengkloning submodule juga.
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 rl-trained-agents/ -n 5000
Silakan lihat bagian khusus dari dokumentasi.
Silakan lihat bagian khusus dari dokumentasi.
Kinerja akhir dari agen terlatih dapat ditemukan di benchmark.md . Untuk menghitungnya, cukup jalankan python -m rl_zoo3.benchmark .
Daftar dan video agen terlatih dapat ditemukan di halaman pelukan kami: https://huggingface.co/sb3
Catatan: Ini bukan tolok ukur kuantitatif karena hanya sesuai dengan satu run (CF Edisi #38). Benchmark ini dimaksudkan untuk memeriksa kinerja algoritma (maksimal), menemukan bug potensial dan juga memungkinkan pengguna untuk memiliki akses ke agen pra -pretrain.
7 Game Atari dari Benchmark OpenAI (versi NOFRAMESKIP-V4).
| RL ALGO | Beamrider | Kesuksesan besar | Enduro | Pong | Qbert | Seaquest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Permainan Atari Tambahan (harus diselesaikan):
| RL ALGO | MSPACMAN | Asteroid | Roadrunner |
|---|---|---|---|
| A2C | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ |
| QR-DQN | ✔️ | ✔️ | ✔️ |
| RL ALGO | Cartpole-V1 | Mountaincar-V0 | Acrobot-V1 | Pendulum-v1 | Mountaincarcontinuous-V0 |
|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ✔️ | ✔️ | ✔️ | N/a | N/a |
| QR-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 | ✔️ | ✔️ |
| TQC | N/a | N/a | N/a | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| RL ALGO | Bipedalwalker-V3 | Lunarlander-V2 | Lunarlandercontinuous-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 | ✔️ | ||
| KANTUNG | ✔️ | N/a | ✔️ | ✔️ | |
| TD3 | ✔️ | N/a | ✔️ | ✔️ | |
| TQC | ✔️ | N/a | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ |
Lihat https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs. Mirip dengan mujoco envs tetapi dengan a bebas (Mujoco 2.1.0+ sekarang gratis!) Mudah menginstal simulator: pybullet. Kami menggunakan versi BulletEnv-v0 .
Catatan: Lingkungan tersebut berasal dari roboschool dan lebih sulit daripada versi Mujoco (lihat masalah pybullet)
| RL ALGO | Walker2d | Halfcheetah | Semut | Pencapai | Hopper | Humanoid |
|---|---|---|---|---|---|---|
| Ars | ||||||
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| KANTUNG | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Pybullet envs (lanjutan)
| RL ALGO | Minitaur | Minitaurduck | InvertedDoublePendulum | EnvertedPendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| Ddpg | ||||
| KANTUNG | ||||
| TD3 | ||||
| TQC |
| RL ALGO | Walker2d | Halfcheetah | Semut | Perenang | Hopper | Humanoid |
|---|---|---|---|---|---|---|
| Ars | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| A2C | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| Ddpg | ||||||
| KANTUNG | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TD3 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| TQC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Trpo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Lihat https://gym.openai.com/envs/#robotics dan #71
Versi Mujoco: 1.50.1.0 Versi Gym: 0.18.0
Kami menggunakan lingkungan V1.
| RL ALGO | FETCHREACH | Fetchpick dan tempat | Fetchpush | Fetchslide |
|---|---|---|---|---|
| Dia+tqc | ✔️ | ✔️ | ✔️ | ✔️ |
Lihat https://github.com/qgallouedec/panda-gym/.
Mirip dengan mujoco robotics envs tetapi dengan a bebas Mudah Menginstal Simulator: Pybullet.
Kami menggunakan lingkungan V1.
| RL ALGO | PandarEach | Pandapick dan tempat | Pandapatush | Pandaslide | Pandastack |
|---|---|---|---|---|---|
| Dia+tqc | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Lihat https://github.com/farama-foundation/minigrid. Lingkungan gym yang sederhana, ringan dan cepat implementasi dari GridWorld yang terkenal.
| RL ALGO | Kosong-Random-5x5 | Empat kamar | Doorkey-5x5 | Multiroom-N4-S5 | Fetch-5x5-n2 | Gotodoor-5x5 | Putnear-6x6-n2 | Redbluedoors-6x6 | Ruang Terkunci | KeyCorridors3r1 | Membuka kunci | ObstrucedMaze-2dlh |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Dqn | ||||||||||||
| QR-DQN | ||||||||||||
| Trpo |
Ada 22 kelompok lingkungan (variasi untuk masing -masing) secara total.
Anda dapat melatih agen online menggunakan Colab Notebook.
Kebun binatang tidak dimaksudkan untuk dieksekusi dari sesi interaktif (misalnya: Jupyter Notebooks, Ipython), namun, dapat dilakukan dengan memodifikasi sys.argv dan menambahkan argumen yang diinginkan.
Contoh
import sys
from rl_zoo3 . train import train
sys . argv = [ "python" , "--algo" , "ppo" , "--env" , "MountainCar-v0" ]
train ()Untuk menjalankan tes, pertama -tama instal pytest, lalu:
make pytest
Sama untuk memeriksa jenis dengan pytype:
make type
Untuk mengutip repositori ini dalam publikasi:
@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} } ,
}Jika Anda melatih agen yang tidak ada di kebun binatang RL, silakan kirimkan permintaan tarik (berisi hyperparameters dan skor juga).
Kami ingin mengucapkan terima kasih kepada kontributor kami: @iandanforth, @tatsubori @shade5 @mcres, @ernestum, @qgallouedec