dm_control
: Infrastruktur Google DeepMind untuk Simulasi Berbasis Fisika.Tumpukan perangkat lunak Google DeepMind untuk simulasi berbasis fisika dan lingkungan Pembelajaran Penguatan, menggunakan fisika MuJoCo.
Tutorial pengantar untuk paket ini tersedia sebagai buku catatan Colaboratory:
Paket ini terdiri dari komponen "inti" berikut:
dm_control.mujoco
: Perpustakaan yang menyediakan pengikatan Python ke mesin fisika MuJoCo.
dm_control.suite
: Satu set lingkungan Pembelajaran Penguatan Python yang didukung oleh mesin fisika MuJoCo.
dm_control.viewer
: Penampil lingkungan interaktif.
Selain itu, komponen berikut tersedia untuk pembuatan tugas kontrol yang lebih kompleks:
dm_control.mjcf
: Perpustakaan untuk membuat dan memodifikasi model MuJoCo MJCF dengan Python.
dm_control.composer
: Pustaka untuk mendefinisikan lingkungan RL yang kaya dari komponen mandiri yang dapat digunakan kembali.
dm_control.locomotion
: Pustaka tambahan untuk tugas khusus.
dm_control.locomotion.soccer
: Tugas sepak bola multi-agen.
Jika Anda menggunakan paket ini, harap mengutip publikasi kami yang menyertainya:
@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},
}
Instal dm_control
dari PyPI dengan menjalankan
pip install dm_control
Catatan :
dm_control
tidak dapat diinstal dalam mode "dapat diedit" (yaitupip install -e
).Meskipun
dm_control
sebagian besar telah diperbarui untuk menggunakan binding berbasis pybind11 yang disediakan melalui paketmujoco
, saat ini dm_control masih bergantung pada beberapa komponen lama yang secara otomatis dihasilkan dari file header MuJoCo dengan cara yang tidak kompatibel dengan mode edit. Mencoba memasangdm_control
dalam mode yang dapat diedit akan mengakibatkan kesalahan impor seperti:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
Solusinya adalah dengan
pip uninstall dm_control
lalu instal ulang tanpa flag-e
.
Mulai dari versi 1.0.0, kami mengadopsi versi semantik.
Sebelum versi 1.0.0, paket Python dm_control
memiliki versi 0.0.N
, dengan N
adalah nomor revisi internal yang meningkat dengan jumlah sewenang-wenang pada setiap penerapan Git.
Jika Anda ingin memasang versi dm_control
yang belum dirilis langsung dari repositori kami, Anda dapat melakukannya dengan menjalankan pip install git+https://github.com/google-deepmind/dm_control.git
.
Binding MuJoCo Python mendukung tiga backend rendering OpenGL yang berbeda: EGL (tanpa kepala, dipercepat perangkat keras), GLFW (berjendela, dipercepat perangkat keras), dan OSMesa (murni berbasis perangkat lunak). Setidaknya satu dari tiga backend ini harus tersedia agar dapat dirender melalui dm_control
.
Render perangkat keras dengan sistem windowing didukung melalui GLFW dan GLEW. Di Linux, ini dapat diinstal menggunakan manajer paket distribusi Anda. Misalnya, di Debian dan Ubuntu, hal ini dapat dilakukan dengan menjalankan sudo apt-get install libglfw3 libglew2.0
. Harap dicatat bahwa:
dm_control.viewer
hanya dapat digunakan dengan GLFW. Render perangkat keras "tanpa kepala" (yaitu tanpa sistem windowing seperti X11) memerlukan dukungan EXT_platform_device di driver EGL. Driver Nvidia terbaru mendukung hal ini. Anda juga membutuhkan GLEW. Di Debian dan Ubuntu, ini dapat diinstal melalui sudo apt-get install libglew2.0
.
Render perangkat lunak memerlukan GLX dan OSMesa. Di Debian dan Ubuntu ini dapat diinstal menggunakan sudo apt-get install libgl1-mesa-glx libosmesa6
.
Secara default, dm_control
akan mencoba menggunakan GLFW terlebih dahulu, lalu EGL, lalu OSMesa. Anda juga dapat menentukan backend tertentu untuk digunakan dengan mengatur variabel lingkungan MUJOCO_GL=
ke "glfw"
, "egl"
, atau "osmesa"
. Saat melakukan rendering dengan EGL, Anda juga dapat menentukan GPU mana yang akan digunakan untuk rendering dengan mengatur variabel lingkungan MUJOCO_EGL_DEVICE_ID=
ke ID GPU target.
Petunjuk penggunaan pip
di atas akan berfungsi, asalkan Anda menggunakan juru bahasa Python yang diinstal oleh Homebrew (bukan yang default sistem).
Sebelum dijalankan, variabel lingkungan DYLD_LIBRARY_PATH
perlu diperbarui dengan jalur ke perpustakaan GLFW. Ini dapat dilakukan dengan menjalankan export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
.