文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

DeepMind Lab

DeepMind Lab 是一个三维的学习环境,基于 id Software 的 Quake III Arena ,由 ioquake3其他开源软件 实现。

DeepMind Lab - Nav Maze Level 1DeepMind Lab - Stairway to Melon LevelDeepMind Lab - Laser Tag Space Bounce Level (Hard)

DeepMind Lab 提供了一组具备挑战性的三维导航和任务解谜的学习代理。其主要目的是作为一个人工智能、特别是深度强化学习的基础研究平台。

关于

免责声明: 该软件并非 Google 官方产品。

如果你在你的研究中使用 DeepMind Lab 并且想引用 DeepMind Lab 环境,我们建议你引用 DeepMind Lab paper.

你可以通过电子邮件跟我们联系 lab@deepmind.com.

第 1 段(可获 1.21 积分)

在 Linux 上玩 DeepMind Lab

  • 从 bazel.io 网站上获取 Bazel

  • 使用如下命令来克隆 DeepMind Lab 代码

$ git clone https://github.com/deepmind/lab
$ cd lab
  • 一个活生生的例子 —— 随机代理,请运行
lab$ bazel run :random_agent --define headless=false -- \
               --length=10000 --width=640 --height=480

这里还有一些 更详细的构建文档,包括如何安装依赖等等。

作为人来运行:

可以使用人为输入来测试游戏:

lab$ bazel run :game -- --level_script tests/demo_map

训练代理

DeepMind Lab 附带了一个随机的代理例子,请看 python/random_agent.py ,这个可以作为实现一个学习代理的起点。为了让这个代理和 DeepMind Lab 进行交互训练,可运行:

lab$ bazel run :random_agent

代理环境的交互 Python API 详细描述请看 docs/python_api.md.

DeepMind Lab 包含不同级别的任务实现。这些任务可以使用 Lua 脚本进行配置,详情请看 docs/lua_api.md.

第 2 段(可获 1.65 积分)

上游源码

DeepMind Lab 是基于 ioquake3 游戏引擎的源码构建的,它使用了 q3map2 和 bspc 工具来创建地图。来自这个项目的 Bug 修复和清理都会得到最好的修复并合并进 DeepMind Lab.

  • bspc 项目地址 github.com/TTimo/bspc, 修订版 e6f90a2dc02916aa2298da6ace70a8333b3f2405. 这个几乎没有做什么修改,虽然我们集成了这个代码到 ioq3 代码中,但并没有在 deps 目录中时候用它们,我们希望这个代码稳定些。

  • q3map2 项目地址 github.com/TTimo/GtkRadiant, 修订版 8557f1820f8e0c7cef9d52a78b2847fa401a4a95. 在本地做了一些小修改,增加了同步以及使用 C99 构造器来替换之前不可移植或者未定义的行为。这个代码同样需要再稳定些。

  • ioquake3 项目地址 github.com/ioquake/ioq3, 修订版 1c1e1f61f180596c925a4ac0eddba4806d1369cd. 这个代码包含了进一步的修改和额外增加的内容。我们目的是偶尔合并上游的修改代码。

非常感谢这些项目的维护者,他们的辛勤工作维护了这么一个高质量的代码。

第 3 段(可获 2.04 积分)

外部依赖,先决条件 以及移植注意事项

DeepMind Lab 如今只能靠源代码传输。所以它需要依靠一些外部的软件库, 我们可以用这几种方式传输这些库:

  • zlib, glib, libxml2, jpeg 和 png 这些库会作为外部的Bzael源被引用,另外还需要提供这些库的Bazel BUILD文件。这些被依赖的库的代码本身应该是相对可移植的,但是我们传输的BUILD(构建)规则是专属于x86架构的Linux系统。为了能在不同系统平台上构建,你很有可能需要编辑这些BUILD文件。

  • 信息处理算法在这个软件包中( //third_party/md), 取自各个的RFC的参考实现。 一个“通用固定学习API” 由DeepMind Lab的作者们创建并放在在//third_party/rl_api中。这些代码是可移植的。

  • 另外还需要有一些库,但是他们不需要做其他传输操作。你能在你的系统中找到他们:

    • SDL 2
    • Lua 5.1 (最新版也可行)
    • gettext (glib需要)
    • OpenGL: 一个硬件驱动以及库,用来硬件加速人工行为。另外,我们也需要OSMesa,因为机器学习,智能代理需要一些软件渲染,无界面的软件库。
    • Python 2.7 (其他版本也行)

构建规则会使用一些专属于GCC的编译设置。如果一些标识没有被你的编译器(通常这些会成为警告),你需要编辑这些标识。这些警告会很恼人,但不会有什么坏影响。

第 4 段(可获 2.91 积分)

文章评论