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
來完成。