2

我试图在OpenAI 的 DQN基线上训练 Atari 2600 游戏 Frostbite。我正在使用 Linux 和 Python 3。在花了一些时间尝试运行它之后,我注意到了几个问题:

  1. from baselines.common.atari_wrappers_deprecated import wrap_dqn 没有被认出来。在网上搜索后,我发现这是一个快速修复: from baselines.common.atari_wrappers import wrap_deepmind

  2. 之后当我运行代码时,我在experiments/atari/train.py 的第246 行收到以下错误:

start_time, start_steps = time.time(), info["steps"] KeyError: 'steps'

我注意到其他几个人在过去 15 天左右出现了这个问题,但还没有任何回应。我是 RL 的新手,所以没有太多的想法。有人有想法吗?

4

1 回答 1

0

有一个相当大的提交“bb40378”导致了这个问题,因为该提交中的某些内容发生了变化,破坏了baselines/deepq/experiments/atari/train.py 和 enjoy.py。我让他们按照以下步骤工作:

  1. 将baselines/common/misc_util.py 替换为来自提交“8822518”的版本。提交“bb40378”中发生的所有事情都是删除 SimpleMonitor,它设置了 train.py 需要的那些必要的键“步骤”和“奖励”,因此获取旧版本可以恢复。
  2. 修改 train.py 以导入该 SimpleMonitor 并使用它,并修复该 env 包装器问题(我相信 wrap_atari_dqn 是正确的)

我为这个修复分叉了他们的存储库。你可以在这里看到提交 因此,您可以选择对您自己的 repo 克隆进行这些更改,或者只是根据您的喜好克隆我的 repo。

当我这样做的时候,我在 enjoy.py 上添加了一个选项来显示模型中的观察结果(这样你就可以看到缩放或灰度变换是否丢失了游戏的关键信息)。

更新

可能值得指出的是,我在 Pong and Breakout 上尝试过这个东西,但收效甚微。有了 Breakout,它就在屏幕的最左侧——因为发球似乎总是在那里,它不可避免地会得到一些分数,但它并没有真正发挥作用。使用 Pong 时,它会转到屏幕底部并坐在那里。因此,至少这个实验/atari 下的默认学习内容似乎并不能很好地学习 atari 内容,可能有一些设置需要更改并且它会起飞,但要注意它不会让你感到惊讶和麻木开箱即用的朋友。

于 2018-01-05T22:37:22.150 回答