
Mushroomrl: Управляемая библиотека Python Learning.
Содержание этого документа:
Mushroomrl-это библиотека обучения Python Areformistion (RL), модульность которых позволяет легко использовать хорошо известные библиотеки Python для тензорных вычислений (например, Pytorch, Tensorflow) и RL-тестов (например, Gym, Pybulet, DeepMind Control Suite). Он позволяет провести эксперименты RL простым способом обеспечения классических алгоритмов RL (например, Q-обучение, SARSA, FQI) и глубоких алгоритмов RL (например, DQN, DDPG, SAC, TD3, TRPO, PPO).
Полная документация и учебные пособия доступны здесь.
Вы можете сделать минимальную установку MushroomRL с:
pip3 install mushroom_rl MushroomRL содержит также некоторые дополнительные компоненты, например, поддержку среды OpenAI Gym , игры Atari 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 Следуйте инструкциям на странице проекта
ПРЕДУПРЕЖДЕНИЕ! При использовании Conda могут быть проблемы с 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 после инструкции, которую можно найти здесь
Хабитат и Igibson-это платформы моделирования, обеспечивающие реалистичную и богатую сенсорным обучением. В Mushroomrl наблюдения агента по умолчанию представляют собой изображения RGB, но также можно использовать RGBD, сенсорные данные агента и другая информация.
Если у вас уже установлены предыдущие версии Igibson или Habitat, мы рекомендуем удалить их и выполнять чистые установки.
Следуйте официальному руководству и установите его активы и наборы данных.
Для <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 для примера.
Следуйте официальному руководству и сделайте полную установку с Mabitat_baselines. Затем вы можете скачать интерактивные наборы данных после этого и это. Если вам нужно загрузить другие наборы данных, вы можете использовать эту утилиту.
Когда вы создаете среду среды 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_filetoHabitat(). Ямлы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 to 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" определяет сцену. Как уже говорилось, этот путь относится к тому, где вы запускаете сценарий, поэтому нам нужно связать папку Replica. Если вы запустите 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!