
RL Baselines3 Zoo هو إطار تدريب لتعلم التعزيز (RL) ، باستخدام خطوط الأساس المستقرة 3.
يوفر البرامج النصية للتدريب ، وتقييم الوكلاء ، وضبط فرط البارامات ، وتخطيط النتائج وتسجيل مقاطع الفيديو.
بالإضافة إلى ذلك ، فإنه يتضمن مجموعة من أجهزة التناوب المضبوطة للبيئات المشتركة وخوارزميات RL ، والوكلاء المدربين على تلك الإعدادات.
نحن نبحث عن مساهمين لإكمال المجموعة!
أهداف هذا المستودع:
هذا هو إصدار SB3 من SB2 RL-ZOO الأصلي.
ملاحظة: على الرغم من أن SB3 و Zoo RL متوافقان مع Numpy> = 2.0 ، ستحتاج إلى Numpy <2 لتشغيل وكلاء على Pybullet Envs (انظر المشكلة).
الوثائق متاحة على الإنترنت: https://rl-baselines3-zoo.readthedocs.io/
من المصدر:
pip install -e .
كحزمة بيثون:
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 المستقرة للبدائل لتثبيت خطوط الأساس المستقرة 3.
يتم تعريف المفرطات المفرطة لكل بيئة في hyperparameters/algo_name.yml .
إذا كانت البيئة موجودة في هذا الملف ، فيمكنك تدريب وكيل باستخدام:
python train.py --algo algo_name --env env_id
تقييم الوكيل كل 10000 خطوة باستخدام 10 حلقات للتقييم (باستخدام ENV تقييم واحد فقط):
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 من أجل استنساخ الجهاز الفرعي أيضًا.
إذا كان الوكيل المدرب موجودًا ، فيمكنك رؤيته في العمل باستخدام:
python enjoy.py --algo algo_name --env env_id
على سبيل المثال ، استمتع بـ A2C على الاختراق خلال 5000 طوابع زمنية:
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 | شعاع | انطلق | إندورو | بونغ | Qbert | Seaquest | SpaceInvaders |
|---|---|---|---|---|---|---|---|
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| DQN | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| QR-DQN | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
ألعاب Atari إضافية (ليتم إكمالها):
| RL algo | Mspacman | الكويكبات | Roadrunner |
|---|---|---|---|
| A2C | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ |
| DQN | ✔ | ✔ | ✔ |
| QR-DQN | ✔ | ✔ | ✔ |
| RL algo | Cartpole-V1 | MountainCar-V0 | Acrobot-V1 | البندول-V1 | MountainCarcontinuous-V0 |
|---|---|---|---|---|---|
| آرس | ✔ | ✔ | ✔ | ✔ | ✔ |
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ |
| DQN | ✔ | ✔ | ✔ | ن/أ | ن/أ |
| QR-DQN | ✔ | ✔ | ✔ | ن/أ | ن/أ |
| DDPG | ن/أ | ن/أ | ن/أ | ✔ | ✔ |
| كيس | ن/أ | ن/أ | ن/أ | ✔ | ✔ |
| TD3 | ن/أ | ن/أ | ن/أ | ✔ | ✔ |
| TQC | ن/أ | ن/أ | ن/أ | ✔ | ✔ |
| trpo | ✔ | ✔ | ✔ | ✔ | ✔ |
| RL algo | Bipedalwalker-V3 | Lunarlander-V2 | LunarlanderContinuous-V2 | bipedalwalkerhardcore-v3 | Carracing-V0 |
|---|---|---|---|---|---|
| آرس | ✔ | ✔ | |||
| A2C | ✔ | ✔ | ✔ | ✔ | |
| PPO | ✔ | ✔ | ✔ | ✔ | |
| DQN | ن/أ | ✔ | ن/أ | ن/أ | ن/أ |
| QR-DQN | ن/أ | ✔ | ن/أ | ن/أ | ن/أ |
| DDPG | ✔ | ن/أ | ✔ | ||
| كيس | ✔ | ن/أ | ✔ | ✔ | |
| TD3 | ✔ | ن/أ | ✔ | ✔ | |
| TQC | ✔ | ن/أ | ✔ | ✔ | |
| trpo | ✔ | ✔ |
راجع https://github.com/bulletphysics/bullet3/tree/master/pulles/pybullet/gym/pybullet_envs. على غرار Mujoco Envs ولكن مع أ حر (Mujoco 2.1.0+ أصبح الآن مجانيًا!) من السهل تثبيت Simulator: Pybullet. نحن نستخدم إصدار BulletEnv-v0 .
ملاحظة: هذه البيئات مستمدة من Roboschool وهي أصعب من إصدار Mujoco (انظر مشكلة Pybullet)
| RL algo | Walker2d | Halfchetah | النملة | Reacher | قادوب | الإنسان |
|---|---|---|---|---|---|---|
| آرس | ||||||
| A2C | ✔ | ✔ | ✔ | ✔ | ✔ | |
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | |
| DDPG | ✔ | ✔ | ✔ | ✔ | ✔ | |
| كيس | ✔ | ✔ | ✔ | ✔ | ✔ | |
| TD3 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| TQC | ✔ | ✔ | ✔ | ✔ | ✔ | |
| trpo | ✔ | ✔ | ✔ | ✔ | ✔ |
بيبوليت بيئة (تابع)
| RL algo | مينيتور | Minitaurduck | مقلوب | InvertedPendulumswingup |
|---|---|---|---|---|
| A2C | ||||
| PPO | ||||
| DDPG | ||||
| كيس | ||||
| TD3 | ||||
| TQC |
| RL algo | Walker2d | Halfchetah | النملة | سباح | قادوب | الإنسان |
|---|---|---|---|---|---|---|
| آرس | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 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/.
على غرار envs Mujoco Robotics ولكن مع أ حر من السهل تثبيت المحاكاة: pybullet.
استخدمنا بيئات V1.
| RL algo | Pandareach | Pandapickandplace | Pandapush | pandaslide | Pandastack |
|---|---|---|---|---|---|
| لها+TQC | ✔ | ✔ | ✔ | ✔ | ✔ |
انظر https://github.com/farama-foundation/minigrid. بيئات الصالة الرياضية البسيطة وخفيفة الوزن وسريعة في عالم الشبكة الشهير.
| RL algo | الفارغ العشوائي -5x5 | أربع غرف | Doorkey-5x5 | MultiRoom-N4-S5 | Fetch-5x5-N2 | gotodoor-5x5 | Putnear-6x6-N2 | redbluedoors-6x6 | غرفة القفل | keycorridors3r1 | فتح | عرقلة 2DLH |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A2C | ||||||||||||
| PPO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| DQN | ||||||||||||
| QR-DQN | ||||||||||||
| trpo |
هناك 22 مجموعة بيئة (اختلافات لكل منها) في المجموع.
يمكنك تدريب الوكلاء عبر الإنترنت باستخدام دفتر كولاب.
لا يُقصد من حديقة الحيوان أن يتم تنفيذها من جلسة تفاعلية (على سبيل المثال: 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 ، فيرجى إرسال طلب سحب (يحتوي على أجهزة بارامترات والنتيجة أيضًا).
نود أن نشكر مساهمينا: @ @ @ @tatsubori @shad5mcres ، ernestum ، qgallouedec