
RL Baselines3 Zoo เป็นกรอบการฝึกอบรมสำหรับการเรียนรู้เสริมแรง (RL) โดยใช้ baselines3 ที่มั่นคง 3
มันมีสคริปต์สำหรับการฝึกอบรมการประเมินตัวแทนการปรับพารามิเตอร์ไฮเปอร์พารามิเตอร์การพล็อตผลลัพธ์และวิดีโอบันทึก
นอกจากนี้ยังรวมถึงคอลเลกชันของพารามิเตอร์ไฮเปอร์พารามิเตอร์สำหรับสภาพแวดล้อมทั่วไปและอัลกอริทึม RL และตัวแทนที่ได้รับการฝึกอบรมด้วยการตั้งค่าเหล่านั้น
เรากำลัง มองหาผู้มีส่วนร่วม ในการรวบรวมคอลเล็กชั่น!
เป้าหมายของที่เก็บนี้:
นี่คือเวอร์ชัน SB3 ของ SB2 RL-ZOO ดั้งเดิม
หมายเหตุ: แม้ว่า SB3 และสวนสัตว์ RL เข้ากันได้กับ numpy> = 2.0 คุณจะต้องใช้ numpy <2 เพื่อเรียกใช้ตัวแทนบน pybullet envs (ดูปัญหา)
เอกสารมีให้ออนไลน์: https://rl-baselines3-zoo.readthedocs.io/
จากแหล่งที่มา:
pip install -e .
เป็นแพ็คเกจ Python:
pip install rl_zoo3
หมายเหตุ: คุณสามารถทำ python -m rl_zoo3.train จากโฟลเดอร์ใด ๆ และคุณสามารถเข้าถึงอินเทอร์เฟซบรรทัดคำสั่ง rl_zoo3 ได้เช่น rl_zoo3 train เทียบเท่ากับ python train.py
apt-get install swig cmake ffmpeg
pip install -r requirements.txt
pip install -e .[plots,tests]
โปรดดูเอกสาร Baselines3 ที่มั่นคงสำหรับทางเลือกในการติดตั้ง Baselines3 ที่มีเสถียรภาพ 3
Hyperparameters สำหรับแต่ละสภาพแวดล้อมถูกกำหนดใน hyperparameters/algo_name.yml
หากสภาพแวดล้อมมีอยู่ในไฟล์นี้คุณสามารถฝึกอบรมตัวแทนโดยใช้:
python train.py --algo algo_name --env env_id
ประเมินเอเจนต์ทุก ๆ 10,000 ขั้นตอนโดยใช้ 10 ตอนสำหรับการประเมิน
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10 --n-eval-envs 1
ตัวอย่างเพิ่มเติมมีอยู่ในเอกสาร
สวนสัตว์ RL มีการรวมเข้ากับห้องสมุด/บริการอื่น ๆ เช่นน้ำหนักและอคติสำหรับการติดตามการทดลองหรือกอดใบหน้าเพื่อจัดเก็บ/แบ่งปันรูปแบบที่ผ่านการฝึกอบรม คุณสามารถหาข้อมูลเพิ่มเติมได้ในส่วนเฉพาะของเอกสาร
โปรดดูส่วนเฉพาะของเอกสาร
หมายเหตุ: ในการดาวน์โหลด repo กับตัวแทนที่ผ่านการฝึกอบรมคุณต้องใช้ git clone --recursive https://github.com/DLR-RM/rl-baselines3-zoo เพื่อโคลน submodule ด้วย
หากตัวแทนที่ผ่านการฝึกอบรมอยู่คุณสามารถเห็นได้ในการดำเนินการโดยใช้:
python enjoy.py --algo algo_name --env env_id
ตัวอย่างเช่นเพลิดเพลินกับ A2C ในการฝ่าวงล้อมในช่วงเวลา 5,000 ครั้ง:
python enjoy.py --algo a2c --env BreakoutNoFrameskip-v4 --folder rl-trained-agents/ -n 5000
โปรดดูส่วนเฉพาะของเอกสาร
โปรดดูส่วนเฉพาะของเอกสาร
ประสิทธิภาพขั้นสุดท้ายของตัวแทนที่ผ่านการฝึกอบรมสามารถพบได้ใน benchmark.md ในการคำนวณพวกเขาเพียงเรียกใช้ python -m rl_zoo3.benchmark
รายการและวิดีโอของตัวแทนที่ผ่านการฝึกอบรมสามารถพบได้ในหน้า HuggingFace ของเรา: https://huggingface.co/SB3
หมายเหตุ: นี่ไม่ใช่เกณฑ์มาตรฐานเชิงปริมาณเนื่องจากสอดคล้องกับการวิ่งเพียงครั้งเดียว (CF ปัญหา #38) เกณฑ์มาตรฐานนี้มีไว้เพื่อตรวจสอบประสิทธิภาพของอัลกอริทึม (สูงสุด) ค้นหาข้อบกพร่องที่อาจเกิดขึ้นและยังช่วยให้ผู้ใช้สามารถเข้าถึงตัวแทนก่อน
7 เกม Atari จาก Openai Benchmark (เวอร์ชัน Noframeskip-V4)
| RL Algo | คนเดินเล่น | การฝ่าวงล้อม | enduro | ปูนปี | qbert | Seaquest | Spaceinvaders |
|---|---|---|---|---|---|---|---|
| A2C | |||||||
| PPO | |||||||
| DQN | |||||||
| QR-DQN |
เกมอาตาริเพิ่มเติม (จะเสร็จสมบูรณ์):
| RL Algo | Mspacman | ดาวเคราะห์น้อย | 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 | ||
| ถุง | 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 | คบ-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 | ||||
| ถุง | N/A | ||||
| TD3 | N/A | ||||
| TQC | N/A | ||||
| TRPO |
ดู https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs คล้ายกับ mujoco envs แต่มี ฟรี (Mujoco 2.1.0+ ตอนนี้ฟรี!) ง่ายต่อการติดตั้ง Simulator: Pybullet เราใช้เวอร์ชัน BulletEnv-v0
หมายเหตุ: สภาพแวดล้อมเหล่านั้นมาจาก Roboschool และยากกว่ารุ่น Mujoco (ดูปัญหา Pybullet)
| RL Algo | Walker2D | halfcheetah | มด | ผู้เข้าถึง | เครื่องกระโดด | มนุษย์ |
|---|---|---|---|---|---|---|
| ARS | ||||||
| A2C | ||||||
| PPO | ||||||
| DDPG | ||||||
| ถุง | ||||||
| TD3 | ||||||
| TQC | ||||||
| TRPO |
Pybullet Envs (ต่อ)
| RL Algo | เสื้อคลุม | มินิทเทอร์ด็อก | inverteddoublependulum | invertedpendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| DDPG | ||||
| ถุง | ||||
| TD3 | ||||
| TQC |
| RL Algo | Walker2D | halfcheetah | มด | นักว่ายน้ำ | เครื่องกระโดด | มนุษย์ |
|---|---|---|---|---|---|---|
| ARS | ||||||
| A2C | ||||||
| PPO | ||||||
| DDPG | ||||||
| ถุง | ||||||
| TD3 | ||||||
| TQC | ||||||
| TRPO |
ดู https://gym.openai.com/envs/#robotics และ #71
Mujoco เวอร์ชัน: 1.50.1.0 ยิมเวอร์ชัน: 0.18.0
เราใช้สภาพแวดล้อม V1
| RL Algo | การเรียกร้อง | fetchpickandplace | fetchpush | การดึง |
|---|---|---|---|---|
| เธอ+tqc |
ดู https://github.com/qgallouedec/panda-gym/
คล้ายกับ Mujoco Robotics envs แต่มี ฟรี ง่ายต่อการติดตั้ง Simulator: Pybullet
เราใช้สภาพแวดล้อม V1
| RL Algo | ชาวแพนด้า | Pandapickandplace | แพนด้า | แพนด้า | คนขี้ขลาด |
|---|---|---|---|---|---|
| เธอ+tqc |
ดู https://github.com/farama-foundation/minigrid สภาพแวดล้อมการออกกำลังกายที่เรียบง่ายน้ำหนักเบาและรวดเร็วของ Gridworld ที่มีชื่อเสียง
| RL Algo | เปล่า Random-5x5 | สี่ห้อง | Doorkey-5x5 | MultiRoom-N4-S5 | Fetch-5x5-N2 | gotodoor-5x5 | Putnear-6x6-N2 | Redbluedoors-6x6 | ห้องขัง | Keycorridors3r1 | ปลดล็อค | สิ่งกีดขวาง |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ||||||||||||
| DQN | ||||||||||||
| QR-DQN | ||||||||||||
| TRPO |
มีกลุ่มสิ่งแวดล้อม 22 กลุ่ม (รูปแบบสำหรับแต่ละกลุ่ม) ทั้งหมด
คุณสามารถฝึกอบรมตัวแทนออนไลน์โดยใช้สมุดบันทึก Colab
สวนสัตว์ไม่ได้หมายถึงการดำเนินการจากเซสชันแบบอินเทอร์แอคทีฟ (เช่น Jupyter Notebooks, 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 โปรดส่งคำขอดึง (มี hyperparameters และคะแนนด้วย)
เราขอขอบคุณผู้มีส่วนร่วมของเรา: @iandanforth, @tatsubori @Shade5 @mcres, @ernestum, @qgallouedec