dm_control
: Infraestrutura Google DeepMind para simulação baseada em física.Pilha de software do Google DeepMind para simulação baseada em física e ambientes de aprendizado por reforço, usando física MuJoCo.
Um tutorial introdutório para este pacote está disponível como um caderno colaborativo:
Este pacote consiste nos seguintes componentes "principais":
dm_control.mujoco
: Bibliotecas que fornecem ligações Python para o mecanismo de física MuJoCo.
dm_control.suite
: Um conjunto de ambientes Python Reinforcement Learning alimentados pelo mecanismo de física MuJoCo.
dm_control.viewer
: um visualizador de ambiente interativo.
Além disso, estão disponíveis os seguintes componentes para a criação de tarefas de controle mais complexas:
dm_control.mjcf
: Uma biblioteca para compor e modificar modelos MuJoCo MJCF em Python.
dm_control.composer
: uma biblioteca para definir ambientes RL ricos a partir de componentes reutilizáveis e independentes.
dm_control.locomotion
: Bibliotecas adicionais para tarefas personalizadas.
dm_control.locomotion.soccer
: tarefas de futebol multiagentes.
Se você usar este pacote, cite nossa publicação que o acompanha:
@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},
}
Instale dm_control
do PyPI executando
pip install dm_control
Nota :
dm_control
não pode ser instalado no modo "editável" (ou seja,pip install -e
).Embora
dm_control
tenha sido amplamente atualizado para usar as ligações baseadas em pybind11 fornecidas através do pacotemujoco
, no momento ele ainda depende de alguns componentes legados que são gerados automaticamente a partir de arquivos de cabeçalho MuJoCo de uma forma que é incompatível com o modo editável. A tentativa de instalardm_control
no modo editável resultará em erros de importação como:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
A solução é
pip uninstall dm_control
e reinstalá-lo sem o sinalizador-e
.
A partir da versão 1.0.0, adotamos versionamento semântico.
Antes da versão 1.0.0, o pacote dm_control
Python tinha a versão 0.0.N
, onde N
era um número de revisão interno que aumentava em um valor arbitrário a cada commit do Git.
Se você deseja instalar uma versão não lançada do dm_control
diretamente de nosso repositório, você pode fazer isso executando pip install git+https://github.com/google-deepmind/dm_control.git
.
As ligações MuJoCo Python suportam três back-ends de renderização OpenGL diferentes: EGL (sem cabeça, acelerado por hardware), GLFW (em janela, acelerado por hardware) e OSMesa (puramente baseado em software). Pelo menos um desses três back-ends deve estar disponível para renderização por meio de dm_control
.
A renderização de hardware com um sistema de janelas é suportada via GLFW e GLEW. No Linux, eles podem ser instalados usando o gerenciador de pacotes da sua distribuição. Por exemplo, no Debian e no Ubuntu, isso pode ser feito executando sudo apt-get install libglfw3 libglew2.0
. Observe que:
dm_control.viewer
só pode ser usado com GLFW. A renderização de hardware "sem cabeça" (ou seja, sem um sistema de janelas como o X11) requer suporte a EXT_platform_device no driver EGL. Drivers recentes da Nvidia suportam isso. Você também precisará do GLEW. No Debian e no Ubuntu, isso pode ser instalado via sudo apt-get install libglew2.0
.
A renderização de software requer GLX e OSMesa. No Debian e no Ubuntu, eles podem ser instalados usando sudo apt-get install libgl1-mesa-glx libosmesa6
.
Por padrão, dm_control
tentará usar primeiro o GLFW, depois o EGL e depois o OSMesa. Você também pode especificar um back-end específico para usar definindo a variável de ambiente MUJOCO_GL=
como "glfw"
, "egl"
ou "osmesa"
, respectivamente. Ao renderizar com EGL, você também pode especificar qual GPU usar para renderização definindo a variável de ambiente MUJOCO_EGL_DEVICE_ID=
como o ID da GPU de destino.
As instruções acima usando pip
devem funcionar, desde que você use um interpretador Python instalado pelo Homebrew (em vez do interpretador padrão do sistema).
Antes de executar, a variável de ambiente DYLD_LIBRARY_PATH
precisa ser atualizada com o caminho para a biblioteca GLFW. Isso pode ser feito executando export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
.