dm_control
: Infrastructure Google DeepMind pour la simulation basée sur la physique.Pile logicielle de Google DeepMind pour les environnements de simulation et d'apprentissage par renforcement basés sur la physique, utilisant la physique MuJoCo.
Un tutoriel d'introduction à ce package est disponible sous forme de cahier Colaboratoire :
Ce package comprend les composants « de base » suivants :
dm_control.mujoco
: bibliothèques qui fournissent des liaisons Python au moteur physique MuJoCo.
dm_control.suite
: Un ensemble d'environnements d'apprentissage par renforcement Python alimentés par le moteur physique MuJoCo.
dm_control.viewer
: Une visionneuse d'environnement interactive.
De plus, les composants suivants sont disponibles pour la création de tâches de contrôle plus complexes :
dm_control.mjcf
: Une bibliothèque pour composer et modifier des modèles MuJoCo MJCF en Python.
dm_control.composer
: Une bibliothèque pour définir des environnements RL riches à partir de composants réutilisables et autonomes.
dm_control.locomotion
: Bibliothèques supplémentaires pour les tâches personnalisées.
dm_control.locomotion.soccer
: Tâches de football multi-agents.
Si vous utilisez ce package, veuillez citer notre publication qui l'accompagne :
@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},
}
Installez dm_control
depuis PyPI en exécutant
pip install dm_control
Remarque :
dm_control
ne peut pas être installé en mode "éditable" (c'est-à-direpip install -e
).Bien que
dm_control
ait été largement mis à jour pour utiliser les liaisons basées sur pybind11 fournies via le packagemujoco
, il repose actuellement toujours sur certains composants hérités qui sont automatiquement générés à partir des fichiers d'en-tête MuJoCo d'une manière incompatible avec le mode modifiable. Tenter d'installerdm_control
en mode modifiable entraînera des erreurs d'importation telles que :ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
La solution consiste à
pip uninstall dm_control
, puis à le réinstaller sans l'indicateur-e
.
À partir de la version 1.0.0, nous adoptons le versioning sémantique.
Avant la version 1.0.0, le package Python dm_control
avait la version 0.0.N
, où N
était un numéro de révision interne qui augmentait d'un montant arbitraire à chaque validation Git.
Si vous souhaitez installer une version inédite de dm_control
directement à partir de notre référentiel, vous pouvez le faire en exécutant pip install git+https://github.com/google-deepmind/dm_control.git
.
Les liaisons MuJoCo Python prennent en charge trois backends de rendu OpenGL différents : EGL (sans tête, accéléré par le matériel), GLFW (avec fenêtre, accéléré par le matériel) et OSMesa (purement basé sur un logiciel). Au moins un de ces trois backends doit être disponible pour pouvoir être rendu via dm_control
.
Le rendu matériel avec un système de fenêtrage est pris en charge via GLFW et GLEW. Sous Linux, ceux-ci peuvent être installés à l'aide du gestionnaire de packages de votre distribution. Par exemple, sur Debian et Ubuntu, cela peut être fait en exécutant sudo apt-get install libglfw3 libglew2.0
. Veuillez noter que :
dm_control.viewer
ne peut être utilisé qu'avec GLFW. Le rendu matériel "Headless" (c'est-à-dire sans système de fenêtrage tel que X11) nécessite la prise en charge de EXT_platform_device dans le pilote EGL. Les pilotes Nvidia récents le prennent en charge. Vous aurez également besoin de GLEW. Sur Debian et Ubuntu, cela peut être installé via sudo apt-get install libglew2.0
.
Le rendu logiciel nécessite GLX et OSMesa. Sur Debian et Ubuntu, ceux-ci peuvent être installés à l'aide de sudo apt-get install libgl1-mesa-glx libosmesa6
.
Par défaut, dm_control
tentera d'abord d'utiliser GLFW, puis EGL, puis OSMesa. Vous pouvez également spécifier un backend particulier à utiliser en définissant la variable d'environnement MUJOCO_GL=
sur "glfw"
, "egl"
ou "osmesa"
, respectivement. Lors du rendu avec EGL, vous pouvez également spécifier le GPU à utiliser pour le rendu en définissant la variable d'environnement MUJOCO_EGL_DEVICE_ID=
sur l'ID du GPU cible.
Les instructions ci-dessus utilisant pip
devraient fonctionner, à condition que vous utilisiez un interpréteur Python installé par Homebrew (plutôt que celui par défaut du système).
Avant l'exécution, la variable d'environnement DYLD_LIBRARY_PATH
doit être mise à jour avec le chemin d'accès à la bibliothèque GLFW. Cela peut être fait en exécutant export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
.