คำเตือน: พื้นที่เก็บข้อมูลนี้ไม่ได้รับการดูแลอีกต่อไปโปรดใช้สวนสัตว์ RL-Baselines3 สำหรับรุ่นที่ทันสมัยขับเคลื่อนโดยเสถียร -Baselines3

คอลเลกชันของตัวแทนการเรียนรู้การเสริมแรง (RL) ที่ผ่านการฝึกอบรมพร้อมกับพารามิเตอร์ไฮเปอร์พารามิเตอร์ที่ปรับด้วยการใช้เส้นเขตแดนที่มั่นคง
เรากำลัง มองหาผู้มีส่วนร่วม ในการรวบรวมคอลเล็กชั่น!
เป้าหมายของที่เก็บนี้:
หากตัวแทนที่ผ่านการฝึกอบรมอยู่คุณสามารถเห็นได้ในการดำเนินการโดยใช้:
python enjoy.py --algo algo_name --env env_id
ตัวอย่างเช่นเพลิดเพลินกับ A2C ในการฝ่าวงล้อมในช่วงเวลา 5,000 ครั้ง:
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 สำหรับแต่ละสภาพแวดล้อมถูกกำหนดใน 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/
ประเมินตัวแทนทุก 10 10 ขั้นตอนโดยใช้ 10 ตอนสำหรับการประเมินผล:
python train.py --algo sac --env HalfCheetahBulletEnv-v0 --eval-freq 10000 --eval-episodes 10
บันทึกจุดตรวจของเอเจนต์ทุก 100,000 ขั้นตอน:
python train.py --algo td3 --env HalfCheetahBulletEnv-v0 --save-freq 100000
การฝึกอบรมต่อ (ที่นี่โหลดตัวแทนที่ผ่านการฝึกอบรมสำหรับการฝ่าวงล้อมและฝึกอบรมต่อไป 5,000 ขั้นตอน):
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 เพื่อเพิ่มประสิทธิภาพพารามิเตอร์
หมายเหตุ: การค้นหา HyperParameters ไม่ได้ถูกนำมาใช้สำหรับ ACER และ DQN ในตอนนี้ เมื่อใช้งานต่อเนื่อง pruner ("ครึ่ง") คุณต้องระบุ --n-jobs > 1
งบประมาณ 1,000 การทดลองที่มีสูงสุด 50000 ขั้นตอน:
python train.py --algo ppo2 --env MountainCar-v0 -n 50000 -optimize --n-trials 1000 --n-jobs 2
--sampler tpe --pruner median
คุณสามารถระบุใน hyperparameter config หนึ่ง wrapper หรือมากกว่าเพื่อใช้รอบ ๆ สภาพแวดล้อม:
สำหรับเสื้อคลุมเดียว:
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
คุณสามารถเขียนทับพารามิเตอร์ hyperparameters ได้อย่างง่ายดายในบรรทัดคำสั่งโดยใช้ --hyperparams :
python train.py --algo a2c --env MountainCarContinuous-v0 --hyperparams learning_rate:0.001 policy_kwargs:"dict(net_arch=[64, 64])"
บันทึก 1,000 ขั้นตอน:
python -m utils.record_video --algo ppo2 --env BipedalWalkerHardcore-v2 -n 1000
คะแนนสามารถพบได้ใน benchmark.md ในการคำนวณพวกเขาเพียงเรียกใช้ python -m utils.benchmark
7 เกม Atari จาก Openai Benchmark (เวอร์ชัน Noframeskip-V4)
| RL Algo | คนเดินเล่น | การฝ่าวงล้อม | enduro | ปูนปี | qbert | Seaquest | Spaceinvaders |
|---|---|---|---|---|---|---|---|
| A2C | |||||||
| ACER | |||||||
| Acktr | |||||||
| PPO2 | |||||||
| DQN | |||||||
| TRPO |
เกมอาตาริเพิ่มเติม (จะเสร็จสมบูรณ์):
| RL Algo | Mspacman |
|---|---|
| A2C | |
| ACER | |
| Acktr | |
| PPO2 | |
| DQN |
| RL Algo | cartpole-v1 | MountainCar-V0 | ACROBOT-V1 | Pendulum-v0 | MountainCarcontinuous-V0 |
|---|---|---|---|---|---|
| A2C | |||||
| ACER | N/A | N/A | |||
| Acktr | |||||
| PPO2 | |||||
| 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 | ||
| TRPO |
| RL Algo | BipedalWalker-V2 | Lunarlander-V2 | Lunarlandercontinuous-V2 | Bipedalwalkerhardcore-V2 | คบ-V0 |
|---|---|---|---|---|---|
| A2C | |||||
| ACER | N/A | N/A | N/A | N/A | |
| Acktr | |||||
| PPO2 | |||||
| DQN | N/A | N/A | N/A | N/A | |
| DDPG | N/A | ||||
| ถุง | N/A | ||||
| TD3 | N/A | ||||
| TRPO |
ดู https://github.com/bulletphysics/bullet3/tree/master/examples/pybullet/gym/pybullet_envs คล้ายกับ Mujoco Envs แต่มีตัวจำลองฟรี: Pybullet เราใช้เวอร์ชัน BulletEnv-v0
หมายเหตุ: สภาพแวดล้อมเหล่านั้นมาจาก Roboschool และยากกว่ารุ่น Mujoco มาก (ดูปัญหา Pybullet)
| RL Algo | Walker2D | halfcheetah | มด | ผู้เข้าถึง | เครื่องกระโดด | มนุษย์ |
|---|---|---|---|---|---|---|
| A2C | ||||||
| Acktr | ||||||
| PPO2 | ||||||
| DDPG | ||||||
| ถุง | ||||||
| TD3 | ||||||
| TRPO |
Pybullet Envs (ต่อ)
| RL Algo | เสื้อคลุม | มินิทเทอร์ด็อก | inverteddoublependulum | invertedpendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| Acktr | ||||
| PPO2 | ||||
| DDPG | ||||
| ถุง | ||||
| TD3 | ||||
| TRPO |
ดู https://github.com/maximecb/gym-minigrid สภาพแวดล้อมการออกกำลังกายที่เรียบง่ายน้ำหนักเบาและรวดเร็วของ Gridworld ที่มีชื่อเสียง
| RL Algo | ว่างเปล่า | สี่ห้อง | ที่สำคัญ | มหลายเส้น | นำมาใช้ |
|---|---|---|---|---|---|
| A2C | |||||
| PPO2 | |||||
| DDPG | |||||
| ถุง | |||||
| TRPO |
มี 19 กลุ่มสิ่งแวดล้อม (รูปแบบสำหรับแต่ละกลุ่ม) ทั้งหมด
โปรดทราบว่าคุณต้องระบุ-Gympackages Gym_Minigrid ด้วยความเพลิดเพลิน py และ train.py เนื่องจากไม่ใช่สภาพแวดล้อมโรงยิมมาตรฐานรวมถึงการติดตั้งโมดูลแพ็คเกจยิมที่กำหนดเองหรือวางไว้ในเส้นทาง Python
pip install gym-minigrid
python train.py --algo ppo2 --env MiniGrid-DoorKey-5x5-v0 --gym-packages gym_minigrid
สิ่งนี้ทำเช่นเดียวกับ:
import gym_minigridนอกจากนี้คุณอาจต้องระบุเครื่องห่อหุ้มสภาพแวดล้อมในโรงยิมในพารามิเตอร์ไฮเปอร์พารามิเตอร์เนื่องจากสภาพแวดล้อมแบบ minigrid มีพื้นที่สังเกตการณ์ dict ซึ่งไม่ได้รับการสนับสนุนโดยเสถียรในตอนนี้
MiniGrid-DoorKey-5x5-v0:
env_wrapper: gym_minigrid.wrappers.FlatObsWrapper
คุณสามารถฝึกอบรมตัวแทนออนไลน์โดยใช้สมุดบันทึก Colab
รุ่นขั้นต่ำ: Baselines ที่เสถียร [MPI]> = 2.10.0
apt-get install swig cmake libopenmpi-dev zlib1g-dev ffmpeg
pip install -r requirements.txt
โปรดดู baselines ที่มั่นคง readme สำหรับทางเลือก
สร้าง Image Docker (CPU):
./scripts/build_docker.sh
GPU:
USE_GPU=True ./scripts/build_docker.sh
ดึงอิมเมจนักเทียบท่า (CPU):
docker pull stablebaselines/rl-baselines-zoo-cpu
ภาพ GPU:
docker pull stablebaselines/rl-baselines-zoo
เรียกใช้สคริปต์ในภาพนักเทียบท่า:
./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 โปรดส่งคำขอดึง (มี hyperparameters และคะแนนด้วย)
เราขอขอบคุณผู้มีส่วนร่วมของเรา: @iandanforth, @tatsubori @Shade5