
Mushroomrl: Python -Bibliothek für Verstärkung.
Inhalt dieses Dokuments:
Mushroomrl ist eine Bibliothek (Python Constructement Learning), deren Modularität es ermöglicht, bekannte Python-Bibliotheken für die Tensorberechnung (z. Es ermöglicht RL-Experimenten auf einfache Weise, klassische RL-Algorithmen (z. B. Q-Learning, Sarsa, FQI) und tiefe RL-Algorithmen (z. B. DQN, DDPG, SAC, TD3, TRPO, PPO).
Vollständige Dokumentation und Tutorials erhältlich hier.
Sie können eine minimale Installation von MushroomRL mit:
pip3 install mushroom_rl MushroomRL enthält auch Arcade Learning Environment optionale Komponenten Pybullet MuJoCo OpenAI Gym Die Unterstützung für diese Klassen ist standardmäßig nicht aktiviert.
Um die gesamten Funktionen zu installieren, benötigen Sie zusätzliche Pakete installiert. Sie können alles installieren, indem Sie ausgeführt werden:
pip3 install mushroom_rl[all]Dadurch wird jede Abhängigkeit von Pilzrl mit Ausnahme der Abhängigkeit von Diagrammen installiert. Für Ubuntu> 20.04 müssen Sie möglicherweise Pygame- und Fitness -Abhängigkeiten installieren:
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 swigBeachten Sie, dass Sie noch einige dieser Abhängigkeiten für verschiedene Betriebssysteme installieren müssen, z. B. SWIG für macOS
Im Folgenden finden Sie den Code, den Sie ausführen müssen, um die Abhängigkeiten der Diagramme zu installieren:
sudo apt -y install python3-pyqt5
pip3 install mushroom_rl[plots]Möglicherweise müssen Sie zuerst externe Abhängigkeiten installieren. Weitere Informationen zur Mujoco-Py-Installation finden Sie in den Anweisungen auf der Projektseite
WARNUNG! Bei der Verwendung von Conda kann es Probleme mit QT geben. Sie können sie beheben, indem Sie dem Code die folgenden Zeilen hinzufügen und<conda_base_path>durch den Pfad zu Ihrer Konda -Verteilung und<env_name>durch den Namen der Conda -Umgebung ersetzen, die Sie verwenden:
import os
os . environ [ 'QT_QPA_PLATFORM_PLUGIN_PATH' ] = '<conda_base_path>/envs/<env_name>/bin/platforms' Installieren Sie die DM_CONTROL -MushroomRL -Schnittstelle dm_control nach der Anweisung, die hier gefunden werden kann
Habitat und Igibson sind Simulationsplattformen, die realistische und sensorische Lernumgebungen bieten. In Mushroomrl sind die Standardbeobachtungen des Agenten RGB -Bilder, aber auch RGBD, Agenten -sensorische Daten und andere Informationen können verwendet werden.
Wenn bereits frühere Versionen von Igibson oder Habitat installiert sind, empfehlen wir, sie zu entfernen und zu reinigen.
Folgen Sie dem offiziellen Leitfaden und installieren Sie die Vermögenswerte und Datensätze.
Für <MUSHROOM_RL PATH>/mushroom-rl/examples/igibson_dqn.py müssen Sie ausführen
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_datasetSie können auch Datensätze von Drittanbietern verwenden.
Die Szenendetails sind in einer YAML -Datei definiert, die an den Agenten übergeben werden muss. Siehe <IGIBSON PATH>/igibson/test/test_house.YAML für ein Beispiel.
Folgen Sie dem offiziellen Leitfaden und machen Sie eine vollständige Installation mit Haborat_Baselines. Anschließend können Sie im Folgenden interaktive Datensätze herunterladen. Wenn Sie andere Datensätze herunterladen müssen, können Sie dieses Dienstprogramm verwenden.
Wenn Sie eine Habitat erstellen, müssen Sie einen Wrapper -Namen und zwei YAML -Dateien übergeben: Habitat(wrapper, config_file, base_config_file) .
Der Wrapper muss zu denen gehören, die in <MUSHROOM_RL PATH>/mushroom-rl/environments/habitat_env.py definiert sind, und kümmert sich um die Umwandlung von Aktionen und Beobachtungen in einem fitromartigen Format. Wenn Ihre Aufgabe / Ihr Roboter dies erfordert, müssen Sie möglicherweise neue Wrapper definieren.
Die YAML -Dateien definieren jedes Detail: die Lebensraumumgebung, die Szene, die Sensoren, die dem Roboter zur Verfügung stehen, die Belohnungen, die Aktionsdiskretisierung und alle zusätzlichen Informationen, die Sie möglicherweise benötigen. Die zweite YAML -Datei ist optional und überschreibt alles, was bereits in der ersten YAML definiert wurde.
Wenn Sie YAMLS von
habitat-labverwenden, prüfen Sie, ob sie eine YAML fürBASE_TASK_CONFIG_PATHdefinieren. Wenn dies der Fall ist, müssen Sie es alsbase_config_fileanHabitat()übergeben.habitat-labYamls verwenden in der Tat relative Wege, und wenn Sie sie von außerhalb des Wurzelordners aufrufen, verursacht dies Fehler.
Wenn Sie einen Datensatz verwenden, stellen Sie sicher, dass der in der YAML -Datei definierte Pfad korrekt ist, insbesondere wenn Sie relative Pfade verwenden. habitat-lab -Yamls verwenden relative Wege. Seien Sie also vorsichtig damit. Standardmäßig ist der in der YAML -Datei definierte Pfad relativ zu dem Ort, an dem Sie den Python -Code gestartet haben. Wenn sich Ihr Datenordner an einem anderen Ort befindet, können Sie auch einen symbolischen Link erstellen.
--data-path data laden sie im Ordner herunter, von dem Sie Ihren Code starten). python -m habitat_sim.utils.datasets_download --uids replica_cad_dataset --data-path data<HABITAT_LAB PATH>/habitat_baselines/config/rearrange/rl_pick.yaml . Dieses YAML definiert BASE_TASK_CONFIG_PATH: configs/tasks/rearrange/pick.yaml , und da dies ein relativer Weg ist, müssen wir ihn überschreiben, indem wir ihren absoluten Pfad als base_config_file -Argument an Habitat() übergeben.pick.yaml den Datensatz, der in Bezug auf <HABITAT_LAB PATH> verwendet werden soll. Wenn Sie mit dem vorherigen Download <HABITAT_LAB PATH>/data Befehl nicht verwendet haben --data-path Argument ln -s < HABITAT_LAB PATH > /data/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_rearrange_sac.py starten. Laden Sie Replik -Szenen herunter und extrahieren Sie sie
WARNUNG! Der Datensatz ist sehr groß!
sudo apt-get install pigz
git clone https://github.com/facebookresearch/Replica-Dataset.git
cd Replica-Dataset
./download.sh replica-path Für diese Aufgabe verwenden wir nur die benutzerdefinierte YAML-Datei pointnav_apartment-0.yaml .
DATA_PATH: "replica_{split}_apartment-0.json.gz" Definiert die JSON-Datei mit einigen Szenendetails, wie z. B. der anfänglichen Position und Ausrichtung des Agenten. Der Wert {split} ist im SPLIT -Schlüssel definiert.
Wenn Sie neue Positionen ausprobieren möchten, können Sie einige aus dem Set der navigierbaren Punkte der Szene probieren. Führen Sie nach der Initialisierung einer
habitatbeispielsweisemdp = Habitat(...)mdp.env._env._sim.sample_navigable_point()aus.
SCENES_DIR: "Replica-Dataset/replica-path/apartment_0" definiert die Szene. Wie bereits erwähnt, ist dieser Pfad relativ zu dem Ort, an dem Sie das Skript starten. Daher müssen wir den Replikatordner verknüpfen. Wenn Sie habitat_nav_dqn.py aus seinem Beispielordner starten
ln -s < PATH TO > /Replica-Dataset/ < MUSHROOM_RL PATH > /mushroom-rl/examples/habitatpython habitat_nav_dqn.py starten.Sie können auch eine lokale bearbeitbare Installation mithilfe verwenden:
pip install --no-use-pep517 -e .So installieren Sie auch optionale Abhängigkeiten:
pip install --no-use-pep517 -e .[all]Um Experimente auszuführen, benötigt MushroomRL eine Skriptdatei, die die erforderlichen Informationen für das Experiment enthält. Befolgen Sie die Skripte im Ordner "Beispiele", um eine Vorstellung davon zu haben, wie ein Experiment ausgeführt werden kann.
Um beispielsweise ein schnelles Experiment mit einem der bereitgestellten Beispielskripte durchzuführen, rennen Sie:
python3 examples/car_on_hill_fqi.pyWenn Sie Mushroomrl für Ihre wissenschaftlichen Veröffentlichungen verwenden, zitieren Sie bitte:
@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 }
}Für jede Frage geben Sie eine E-Mail unter [email protected].
Folgen Sie uns auf Twitter @Mushroom_RL!