
Mushroomrl: تعزيز التعلم مكتبة Python.
محتويات هذه الوثيقة:
Mushroomrl هي مكتبة لتعزيز تعزيز Python (RL) التي تتيح وحداتها استخدام المكتبات Python المعروفة بسهولة لحساب الموتر (مثل Pytorch و TensorFlow) و RL (مثل Openai Gym ، Pybullet ، Deepmind Control Soite). يسمح بإجراء تجارب RL بطريقة بسيطة توفير خوارزميات RL الكلاسيكية (على سبيل المثال-التعليم ، SARSA ، FQI) ، وخوارزميات RL العميقة (مثل DQN ، DDPG ، SAC ، TD3 ، TRPO ، PPO).
الوثائق الكاملة والدروس التعليمية المتاحة هنا.
يمكنك القيام بتثبيت الحد الأدنى من MushroomRL مع:
pip3 install mushroom_rl يحتوي MushroomRL أيضًا على بعض المكونات الاختيارية على سبيل المثال ، ودعم بيئات OpenAI Gym ، وأتاري 2600 ألعاب من Arcade Learning Environment ، ودعم أجهزة محاكاة الفيزياء مثل Pybullet و MuJoCo . لا يتم تمكين دعم هذه الفئات افتراضيًا.
لتثبيت مجموعة كاملة من الميزات ، ستحتاج إلى تثبيت حزم إضافية. يمكنك تثبيت كل شيء عن طريق التشغيل:
pip3 install mushroom_rl[all]سيؤدي ذلك إلى تثبيت كل تبعية من الفطر ، باستثناء المؤامرات التبعية. لـ Ubuntu> 20.04 ، قد تحتاج إلى تثبيت التبعيات الصالة الرياضية والصالة الرياضية:
sudo apt -y install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
libsdl1.2-dev libsmpeg-dev libportmidi-dev ffmpeg libswscale-dev
libavformat-dev libavcodec-dev swigلاحظ أنك لا تزال بحاجة إلى تثبيت بعض هذه التبعيات لأنظمة التشغيل المختلفة ، على سبيل المثال SWIG لـ MacOS
فيما يلي الرمز الذي تحتاج إلى تشغيله لتثبيت التبعيات المؤامرات:
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]قد تحتاج إلى تثبيت تبعيات خارجية أولاً. لمزيد من المعلومات حول تثبيت Mujoco-Py ، اتبع التعليمات الواردة في صفحة المشروع
تحذير! عند استخدام كوندا ، قد تكون هناك مشاكل مع QT. يمكنك إصلاحها عن طريق إضافة الأسطر التالية إلى الكود ، واستبدال<conda_base_path>مع المسار إلى توزيع conda الخاص بك و<env_name>باسم بيئة conda التي تستخدمها:
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' لاستخدام واجهة DM_Control Mushroomrl ، قم بتثبيت dm_control بعد التعليمات التي يمكن العثور عليها هنا
Habitat و Igibson هما منصات محاكاة توفر بيئات تعليمية واقعية وغنية بالحساس. في Mushroomrl ، يمكن أيضًا استخدام الملاحظات الافتراضية للوكيل RGB ، ولكن يمكن أيضًا استخدام RGBD ، والبيانات الحسية للوكيل ، وغيرها من المعلومات.
إذا كان لديك إصدارات سابقة من IGIBSON أو الموئل المثبتة بالفعل ، فإننا نوصي بإزالتها وإجراء عمليات تثبيت نظيفة.
اتبع الدليل الرسمي وتثبيت أصوله ومجموعات البيانات.
لـ <MUSHROOM_RL PATH>/mushroom-rl/examples/igibson_dqn.py تحتاج إلى تشغيل
python -m igibson.utils.assets_utils --download_assets
python -m igibson.utils.assets_utils --download_demo_data
python -m igibson.utils.assets_utils --download_ig_datasetيمكنك أيضًا استخدام مجموعات بيانات الجهات الخارجية.
يتم تعريف تفاصيل المشهد في ملف YAML ، الذي يجب نقله إلى الوكيل. انظر <IGIBSON PATH>/igibson/test/test_house.YAML للحصول على مثال.
اتبع الدليل الرسمي وقم بتثبيت كامل مع الموئل. ثم يمكنك تنزيل مجموعات البيانات التفاعلية بعد هذا وهذا. إذا كنت بحاجة إلى تنزيل مجموعات البيانات الأخرى ، فيمكنك استخدام هذه الأداة المساعدة.
عند إنشاء بيئة Habitat ، تحتاج إلى تمرير اسم غلاف وملفين اثنين من YAML: Habitat(wrapper, config_file, base_config_file) .
يجب أن يكون الغلاف من بين تلك المحددة في <MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py ، ويعتني بتحويل الإجراءات والملاحظات بتنسيق يشبه الصالة الرياضية. إذا كانت مهمتك / روبوتك تتطلب ذلك ، فقد تحتاج إلى تحديد مغلفة جديدة.
تحدد ملفات YAML كل التفاصيل: بيئة الموائل ، والمشهد ، والمستشعرات المتاحة للروبوت ، والمكافآت ، وتقدير الإجراء ، وأي معلومات إضافية قد تحتاجها. ملف yaml الثاني اختياري ، والكتابة فوق كل ما تم تعريفه بالفعل في YAML الأول.
إذا كنت تستخدم yamls من
habitat-lab، فتحقق مما إذا كانت تحدد yaml لـBASE_TASK_CONFIG_PATH. إذا فعلوا ذلك ، فأنت بحاجة إلى تمريره كـbase_config_fileإلىHabitat(). في الواقع ، تستخدم YAMLShabitat-labمسارات نسبية ، وسيؤدي استدعاءها من خارج مجلد الجذر إلى حدوث أخطاء.
إذا كنت تستخدم مجموعة بيانات ، فتأكد من أن المسار المحدد في ملف YAML صحيح ، خاصة إذا كنت تستخدم المسارات النسبية. يستخدم Yamls habitat-lab المسارات النسبية ، لذا كن حذرًا في ذلك. بشكل افتراضي ، سيكون المسار المحدد في ملف YAML مرتبطًا بالمكان الذي أطلقت فيه رمز Python. إذا كان مجلد البيانات الخاص بك في مكان آخر ، فيمكنك أيضًا إنشاء رابط رمزي.
--data-path data يقوم بتنزيلها في المجلد من حيث تقوم بتشغيل الكود الخاص بك) python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset --data-path data<HABITAT_LAB PATH>/habitat_baselines/config/rearrange/rl_pick.yaml . يحدد هذا yaml BASE_TASK_CONFIG_PATH: configs/tasks/rearrange/pick.yaml ، وبما أن هذا مسار نسبي ، نحتاج إلى الكتابة فوقه عن طريق تمرير مساره المطلق كوسيطة base_config_file إلى Habitat() .pick.yaml مجموعة البيانات المراد استخدامها فيما يتعلق بـ <HABITAT_LAB PATH> . إذا لم تكن قد استخدمت-الوسيطة --data-path مع أمر التنزيل السابق ، فإن مجموعات بيانات REPLICACAD أصبحت الآن في <HABITAT_LAB PATH>/data وتحتاج إلى عمل رابط إليه ln -s < HABITAT_LAB PATH > /data/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_rearrange_sac.py . قم بتنزيل واستخراج مشاهد النسخة المتماثلة
تحذير! مجموعة البيانات كبيرة جدا!
sudo apt-get install pigz
git clone https://github.com/facebookresearch/Replica-Dataset.git
cd Replica-Dataset
./download.sh replica-path لهذه المهمة ، نستخدم فقط ملف yaml المخصص pointnav_apartment-0.yaml .
DATA_PATH: "replica_{split}_apartment-0.json.gz" يحدد ملف JSON مع بعض تفاصيل المشهد ، مثل الوضع الأولي للوكيل وتوجيهه. يتم تعريف القيمة {split} في مفتاح SPLIT .
إذا كنت ترغب في تجربة مواقف جديدة ، فيمكنك أخذ عينات من مجموعة من النقاط القابلة للملاحة في المشهد. بعد تهيئة بيئة
habitat، على سبيل المثالmdp = Habitat(...)، قم بتشغيلmdp.env._env._sim.sample_navigable_point().
SCENES_DIR: "Replica-Dataset/replica-path/apartment_0" تحدد المشهد. كما قيل من قبل ، فإن هذا المسار يتعلق بالمكان الذي تطلق فيه البرنامج النصي ، وبالتالي نحتاج إلى ربط مجلد النسخة المتماثلة. إذا قمت بتشغيل habitat_nav_dqn.py من مجلد المثال الخاص به ، قم بتشغيل
ln -s < PATH TO > /Replica-Dataset/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_nav_dqn.py .يمكنك أيضًا إجراء تثبيت قابل للتحرير محلي باستخدام:
pip install --no-use-pep517 -e .للتثبيت أيضًا تبعيات اختيارية:
pip install --no-use-pep517 -e .[all]لتشغيل التجارب ، يتطلب MushroomRl ملف نص يوفر المعلومات اللازمة للتجربة. اتبع البرامج النصية في مجلد "الأمثلة" للحصول على فكرة عن كيفية تشغيل التجربة.
على سبيل المثال ، لتشغيل تجربة سريعة مع أحد البرامج النصية للمثال المقدمة ، قم بتشغيل:
python3 examples/car_on_hill_fqi.pyإذا كنت تستخدم Mushroomrl في منشوراتك العلمية ، فيرجى الاستشهاد:
@article { JMLR:v22:18-056 ,
author = { Carlo D'Eramo and Davide Tateo and Andrea Bonarini and Marcello Restelli and Jan Peters } ,
title = { MushroomRL: Simplifying Reinforcement Learning Research } ,
journal = { Journal of Machine Learning Research } ,
year = { 2021 } ,
volume = { 22 } ,
number = { 131 } ,
pages = { 1-5 } ,
url = { http://jmlr.org/papers/v22/18-056.html }
}لأي سؤال ، قم بإسقاط بريد إلكتروني على [email protected].
تابعنا على twittermushroom_rl!