Um ambiente de aprendizagem escrito em C++ e Lua para a criação de mundos em grade.
DeepMind Lab2D é um sistema para criação de ambientes 2D para aprendizado de máquina. Os principais objetivos do sistema são facilidade de uso e desempenho: Os ambientes são "mundos de grade", que são definidos com uma combinação de mapas simples baseados em texto para o layout do mundo e código Lua para seu comportamento. Os agentes de aprendizado de máquina interagem com esses ambientes por meio de uma das duas APIs, a API Python dm_env
ou uma API C personalizada (que também é usada pelo DeepMind Lab). Vários agentes são suportados.
Se você usa o DeepMind Lab2D em sua pesquisa e gostaria de citá-lo, sugerimos que cite o whitepaper que o acompanha.
DeepMind Lab2d está disponível no PyPI e pode ser instalado usando:
pip install dmlab2d
dmlab2d
é distribuído como rodas pré-construídas para Linux e macOS. Se não houver uma roda apropriada para sua plataforma, você precisará construí-la a partir do código-fonte. Consulte install.sh
para obter um exemplo de script de instalação que pode ser adaptado à sua configuração.
Fornecemos um exemplo de agente "aleatório" em python/random_agent
, que executa ações aleatórias. Isso pode ser usado como base para criar seus próprios agentes e como uma ferramenta simples para visualizar um ambiente.
bazel run -c opt dmlab2d/random_agent -- --level_name=clean_up
O DeepMind Lab2D depende de algumas bibliotecas de software externas, que fornecemos de diversas maneiras diferentes:
As bibliotecas dm_env
, eigen
, luajit
, lua5.1
, lua5.2
, luajit
, png
e zlib
são referenciadas como fontes externas do Bazel e os arquivos Bazel BUILD são fornecidos. O código dependente em si deve ser bastante portátil, e as regras BUILD que enviamos são específicas para Linux x86 e MacOS (x86 e arm64). Para construir em uma plataforma diferente, você provavelmente terá que editar esses arquivos BUILD.
Uma "API genérica de aprendizagem por reforço" está incluída em //third_party/rl_api
.
Várias bibliotecas adicionais são necessárias, mas não são enviadas de nenhuma forma; eles devem estar presentes em seu sistema:
Python 3.8
ou superior com NumPy
, PyGame
e packaging
.As regras de construção usam algumas configurações do compilador específicas do GCC/Clang. Se alguns sinalizadores não forem reconhecidos pelo seu compilador (normalmente seriam supressões de aviso específicas), talvez seja necessário editar esses sinalizadores.
Este não é um produto oficial do Google.