
Mushroomrl:加固學習Python圖書館。
本文檔的內容:
Mushroomrl是一個Python增強學習(RL)庫,其模塊化允許易於使用眾所周知的Python庫進行張量計算(例如Pytorch,TensorFlow)和RL基準測試(例如OpenAI Gym,Pybullet,Pybullet,DeepMind Control Suite)。它允許以簡單的方式執行RL實驗,從而提供經典的RL算法(例如Q-Learning,SARSA,FQI)和Deep RL算法(例如DQN,DDPG,SAC,TD3,TD3,TRPO,PPO)。
完整的文檔和教程。
您可以使用以下方式進行最小的MushroomRL安裝。
pip3 install mushroom_rlMushroomRL還包含一些可選的組件,例如對OpenAI Gym環境的支持,Atari 2600遊戲中的Arcade Learning Environment 2600遊戲以及對Pybullet和MuJoCo等物理模擬器的支持。默認情況下不啟用對這些類的支持。
要安裝整個功能集,您將需要安裝其他軟件包。您可以通過運行安裝所有內容:
pip3 install mushroom_rl[all]除了圖依賴關係外,這將安裝Mushroomrl的所有依賴性。對於Ubuntu> 20.04,您可能需要安裝Pygame和健身房依賴性:
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請注意,您仍然需要為不同的操作系統安裝其中一些依賴項,例如MacOS的SWIG
以下是您需要運行的代碼來安裝圖依賴項:
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]您可能需要首先安裝外部依賴項。有關Mujoco-Py安裝的更多信息,請遵循項目頁面上的說明
警告!使用Conda時,QT可能存在問題。您可以通過將以下行添加到代碼中來修復它們,將<conda_base_path>替換為通往conda發行的路徑,並用您使用的conda環境的名稱<env_name>:
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms'要使用DM_Control Mushroomrl接口,請按照可以在此處找到的說明安裝dm_control
棲息地和Igibson是提供現實且感官豐富的學習環境的仿真平台。在Mushroomrl中,代理的默認觀察結果是RGB圖像,但是RGBD,Agent感覺數據和其他信息也可以使用。
如果您已經安裝了以前的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_baselines進行完整安裝。然後,您可以在此之後下載交互式數據集。如果您需要下載其他數據集,則可以使用此實用程序。
創建Habitat環境時,需要傳遞包裝器名稱和兩個YAML文件: Habitat(wrapper, config_file, base_config_file) 。
包裝器必須是<MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py中定義的包裝器之一,並照顧以類似健身房的形式轉換動作和觀察。如果您的任務 /機器人需要它,則可能需要定義新包裝器。
YAML文件定義了每個細節:棲息地環境,場景,機器人可用的傳感器,獎勵,操作離散化以及您可能需要的任何其他信息。第二個YAML文件是可選的,並且覆蓋了第一個YAML中已經定義的內容。
如果您使用
habitat-lab的山藥,請檢查它們是否為BASE_TASK_CONFIG_PATH定義yaml。如果他們這樣做,則需要將其作為base_config_file將其傳遞給Habitat()。實際上,habitat-lab山藥使用相對路徑,並從根部文件夾外撥打它們會導致錯誤。
如果使用數據集,請確保在YAML文件中定義的路徑正確,尤其是在使用相對路徑時。 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 grognm傳遞給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]刪除電子郵件。
在Twitter @mushroom_rl上關注我們!