dm_control
: инфраструктура Google DeepMind для моделирования на основе физики.Программный стек Google DeepMind для моделирования на основе физики и сред обучения с подкреплением с использованием физики MuJoCo.
Вводное руководство для этого пакета доступно в виде блокнота для совместной работы:
Этот пакет состоит из следующих «основных» компонентов:
dm_control.mujoco
: библиотеки, которые предоставляют привязки Python к физическому движку MuJoCo.
dm_control.suite
: набор сред Python Reinforcement Learning, основанных на физическом движке MuJoCo.
dm_control.viewer
: средство просмотра интерактивной среды.
Дополнительно для создания более сложных задач управления доступны следующие компоненты:
dm_control.mjcf
: библиотека для создания и изменения моделей MuJoCo MJCF на Python.
dm_control.composer
: библиотека для определения богатых сред RL из многоразовых автономных компонентов.
dm_control.locomotion
: дополнительные библиотеки для пользовательских задач.
dm_control.locomotion.soccer
: Мультиагентные футбольные задачи.
Если вы используете этот пакет, пожалуйста, цитируйте нашу сопроводительную публикацию:
@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},
}
Установите dm_control
из PyPI, запустив
pip install dm_control
Примечание .
dm_control
нельзя установить в «редактируемом» режиме (т. е.pip install -e
).Хотя
dm_control
был значительно обновлен для использования привязок на основе pybind11, предоставляемых через пакетmujoco
, в настоящее время он по-прежнему использует некоторые устаревшие компоненты, которые автоматически генерируются из заголовочных файлов MuJoCo способом, несовместимым с редактируемым режимом. Попытка установитьdm_control
в редактируемом режиме приведет к ошибкам импорта, например:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
Решение состоит в том, чтобы
pip uninstall dm_control
, а затем переустановить его без флага-e
.
Начиная с версии 1.0.0 мы применяем семантическое версионирование.
До версии 1.0.0 пакет Python dm_control
имел версию 0.0.N
, где N
— внутренний номер версии, который увеличивался на произвольную величину при каждом коммите Git.
Если вы хотите установить невыпущенную версию dm_control
непосредственно из нашего репозитория, вы можете сделать это, запустив pip install git+https://github.com/google-deepmind/dm_control.git
.
Привязки MuJoCo Python поддерживают три различных механизма рендеринга OpenGL: EGL (безголовый, с аппаратным ускорением), GLFW (оконный, с аппаратным ускорением) и OSMesa (чисто программный). По крайней мере, один из этих трех бэкэндов должен быть доступен для рендеринга через dm_control
.
Аппаратный рендеринг с оконной системой поддерживается через GLFW и GLEW. В Linux их можно установить с помощью менеджера пакетов вашего дистрибутива. Например, в Debian и Ubuntu это можно сделать, запустив sudo apt-get install libglfw3 libglew2.0
. Обратите внимание:
dm_control.viewer
можно использовать только с GLFW. «Безголовый» аппаратный рендеринг (т.е. без оконной системы, такой как X11) требует поддержки EXT_platform_device в драйвере EGL. Последние драйверы Nvidia поддерживают это. Вам также понадобится GLEW. В Debian и Ubuntu это можно установить с помощью sudo apt-get install libglew2.0
.
Программный рендеринг требует GLX и OSMesa. В Debian и Ubuntu их можно установить с помощью sudo apt-get install libgl1-mesa-glx libosmesa6
.
По умолчанию dm_control
сначала попытается использовать GLFW, затем EGL, а затем OSMesa. Вы также можете указать конкретный бэкэнд, установив для переменной среды MUJOCO_GL=
значение "glfw"
, "egl"
или "osmesa"
соответственно. При рендеринге с помощью EGL вы также можете указать, какой графический процессор использовать для рендеринга, установив для переменной среды MUJOCO_EGL_DEVICE_ID=
идентификатор целевого графического процессора.
Приведенные выше инструкции с использованием pip
должны работать при условии, что вы используете интерпретатор Python, установленный Homebrew (а не системный по умолчанию).
Перед запуском переменную среды DYLD_LIBRARY_PATH
необходимо обновить, указав путь к библиотеке GLFW. Это можно сделать, запустив export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
.