dm_control
:用于基于物理的模拟的 Google DeepMind 基础设施。Google DeepMind 的软件堆栈,用于基于物理的模拟和强化学习环境,使用 MuJoCo 物理。
该包的介绍性教程可作为 Colaboratory 笔记本提供:
该软件包由以下“核心”组件组成:
dm_control.mujoco
:提供与 MuJoCo 物理引擎的 Python 绑定的库。
dm_control.suite
:一组由 MuJoCo 物理引擎提供支持的 Python 强化学习环境。
dm_control.viewer
:交互式环境查看器。
此外,以下组件可用于创建更复杂的控制任务:
dm_control.mjcf
:用于在 Python 中编写和修改 MuJoCo MJCF 模型的库。
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},
}
通过运行从 PyPI 安装dm_control
pip install dm_control
注意:
dm_control
无法以“可编辑”模式安装(即pip install -e
)。虽然
dm_control
已大幅更新为使用通过mujoco
包提供的基于 pybind11 的绑定,但此时它仍然依赖于一些从 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 之前, dm_control
Python 包的版本为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 等窗口系统)需要 EGL 驱动程序中的 EXT_platform_device 支持。最新的 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=
设置为目标 GPU ID 来指定使用哪个 GPU 进行渲染。
如果您使用 Homebrew 安装的 Python 解释器(而不是系统默认的解释器),则使用pip
上述说明应该有效。
在运行之前,需要使用 GLFW 库的路径更新DYLD_LIBRARY_PATH
环境变量。这可以通过运行export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
来完成。