如何更改A3C Tensorflow示例以播放Atari游戏?

问题描述 投票:1回答:1

我遵循实施A3C的Tensorflow tutorial以便在cartpole环境中做得很好,并且想要将它作为一些Atari游戏的游戏机器人的起点。但是,如果我只是将环境更改为Frostbite-v0,则在工作线程启动时会出现此错误:

Exception in thread Thread-4:
Traceback (most recent call last):
  File "threading.py", line 917, in _bootstrap_inner
    self.run()
  File "a3c.py", line 286, in run
    action = np.random.choice(self.action_size, p=probs.numpy()[0])
  File "mtrand.pyx", line 1135, in mtrand.RandomState.choice
ValueError: object too deep for desired array

我是深度学习中的一个完整的菜鸟,但我想问题是网络如何才有Dense图层采取输入,在这种情况下,以this作为参考,具有不同形状的环境,意味着不是Box(4,) as在cartpole的例子中,但Box(210, 160, 3)

如何更改示例以使其与此类观察正常工作?我必须添加/更改图层吗?一般来说,它可以正常运行Frostbite-v0环境?

编辑:另一件令我烦恼的事情是,state_size中的ActorCriticModel参数已设置但从未使用过,至少从外部角度来看。模型是否以任何方式使用它,或者它只是作为未使用的参数坐在那里?

python tensorflow deep-learning reinforcement-learning openai-gym
1个回答
1
投票

我担心你需要改变很多东西:首先,处理你需要添加卷积层的图像输入。其次,传统上atari游戏的图像从210x160x3到64x64(微小灰度图像)或类似的东西下采样。因此,如果您是初学者,我认为查看其他一些教程可能会更好。例如famous blog post from a famous guy Karpathy

© www.soinside.com 2019 - 2024. All rights reserved.