dm_control
: Google DeepMind-Infrastruktur für physikbasierte Simulation.Der Software-Stack von Google DeepMind für physikbasierte Simulations- und Reinforcement-Learning-Umgebungen unter Verwendung der MuJoCo-Physik.
Ein Einführungstutorial für dieses Paket ist als Colaboratory-Notizbuch verfügbar:
Dieses Paket besteht aus den folgenden „Kern“-Komponenten:
dm_control.mujoco
: Bibliotheken, die Python-Bindungen für die MuJoCo-Physik-Engine bereitstellen.
dm_control.suite
: Eine Reihe von Python-Reinforcement-Lernumgebungen, die auf der MuJoCo-Physik-Engine basieren.
dm_control.viewer
: Ein interaktiver Umgebungsviewer.
Für die Erstellung komplexerer Steuerungsaufgaben stehen zusätzlich folgende Komponenten zur Verfügung:
dm_control.mjcf
: Eine Bibliothek zum Erstellen und Ändern von MuJoCo MJCF-Modellen in Python.
dm_control.composer
: Eine Bibliothek zum Definieren umfangreicher RL-Umgebungen aus wiederverwendbaren, eigenständigen Komponenten.
dm_control.locomotion
: Zusätzliche Bibliotheken für benutzerdefinierte Aufgaben.
dm_control.locomotion.soccer
: Fußballaufgaben mit mehreren Agenten.
Wenn Sie dieses Paket nutzen, zitieren Sie bitte unsere Begleitpublikation:
@article{tunyasuvunakool2020,
title = {dm_control: Software and tasks for continuous control},
journal = {Software Impacts},
volume = {6},
pages = {100022},
year = {2020},
issn = {2665-9638},
doi = {https://doi.org/10.1016/j.simpa.2020.100022},
url = {https://www.sciencedirect.com/science/article/pii/S2665963820300099},
author = {Saran Tunyasuvunakool and Alistair Muldal and Yotam Doron and
Siqi Liu and Steven Bohez and Josh Merel and Tom Erez and
Timothy Lillicrap and Nicolas Heess and Yuval Tassa},
}
Installieren Sie dm_control
von PyPI, indem Sie es ausführen
pip install dm_control
Hinweis :
dm_control
kann nicht im „bearbeitbaren“ Modus installiert werden (z. B.pip install -e
).Während
dm_control
weitgehend aktualisiert wurde, um die über dasmujoco
-Paket bereitgestellten pybind11-basierten Bindungen zu verwenden, stützt es sich derzeit noch auf einige Legacy-Komponenten, die automatisch aus MuJoCo-Header-Dateien auf eine Weise generiert werden, die mit dem bearbeitbaren Modus nicht kompatibel ist. Der Versuch,dm_control
im bearbeitbaren Modus zu installieren, führt zu Importfehlern wie:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
Die Lösung besteht darin
pip uninstall dm_control
und dann ohne das Flag-e
neu zu installieren.
Ab Version 1.0.0 übernehmen wir die semantische Versionierung.
Vor Version 1.0.0 hatte das dm_control
Python-Paket die Version 0.0.N
, wobei N
eine interne Revisionsnummer war, die sich bei jedem einzelnen Git-Commit um einen beliebigen Betrag erhöhte.
Wenn Sie eine unveröffentlichte Version von dm_control
direkt aus unserem Repository installieren möchten, können Sie dies tun, indem Sie pip install git+https://github.com/google-deepmind/dm_control.git
ausführen.
Die MuJoCo-Python-Bindungen unterstützen drei verschiedene OpenGL-Rendering-Backends: EGL (headless, hardwarebeschleunigt), GLFW (windowed, hardwarebeschleunigt) und OSMesa (rein softwarebasiert). Mindestens eines dieser drei Backends muss verfügbar sein, um über dm_control
rendern zu können.
Hardware-Rendering mit einem Fenstersystem wird über GLFW und GLEW unterstützt. Unter Linux können diese mit dem Paketmanager Ihrer Distribution installiert werden. Unter Debian und Ubuntu kann dies beispielsweise durch Ausführen von sudo apt-get install libglfw3 libglew2.0
erfolgen. Bitte beachten Sie Folgendes:
dm_control.viewer
kann nur mit GLFW verwendet werden. „Headless“-Hardware-Rendering (dh ohne ein Fenstersystem wie X11) erfordert EXT_platform_device-Unterstützung im EGL-Treiber. Aktuelle Nvidia-Treiber unterstützen dies. Sie benötigen außerdem GLEW. Unter Debian und Ubuntu kann dies über sudo apt-get install libglew2.0
installiert werden.
Für das Software-Rendering sind GLX und OSMesa erforderlich. Unter Debian und Ubuntu können diese mit sudo apt-get install libgl1-mesa-glx libosmesa6
installiert werden.
Standardmäßig versucht dm_control
, zuerst GLFW, dann EGL und dann OSMesa zu verwenden. Sie können auch ein bestimmtes zu verwendendes Backend angeben, indem Sie die Umgebungsvariable MUJOCO_GL=
auf "glfw"
, "egl"
bzw. "osmesa"
setzen. Beim Rendern mit EGL können Sie auch angeben, welche GPU zum Rendern verwendet werden soll, indem Sie die Umgebungsvariable MUJOCO_EGL_DEVICE_ID=
auf die Ziel-GPU-ID setzen.
Die obigen Anweisungen mit pip
sollten funktionieren, vorausgesetzt, Sie verwenden einen Python-Interpreter, der von Homebrew installiert wird (und nicht den vom System standardmäßig verwendeten).
Vor der Ausführung muss die Umgebungsvariable DYLD_LIBRARY_PATH
mit dem Pfad zur GLFW-Bibliothek aktualisiert werden. Dies kann durch Ausführen von export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
erfolgen.