Karpathy的代码训练神经网络使用Policy Gradients来玩Pong

时间:2018-03-16 11:41:49

标签: python matlab machine-learning neural-network reinforcement-learning

我正在研究Andrej Karpathy"培训神经网络ATARI Pong代理与原始像素的策略渐变" https://gist.github.com/karpathy/a4166c7fe253700972fcbc77e4ea32c5。我不是Python人,所以我试图在Matlab中编写这段代码。我有两个问题。

问题1:我注意到xshsdlogpsdrs被初始化为[],[],[],[](第67行)并重置为{{ 1}}每集后(第103行)。但[],[],[],[]epxephepdlogp既未初始化也未重置。它们似乎永远在增长(第99-102行)。我对么?我不熟悉epr的细微差别。

问题2:如果我有一个向上,向下,向右和向左移动玩家移动选项的游戏,我将如何修改此代码以使其工作(除了对输出图层中4个节点的明显修改)?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你正在想象numpy.vstack的细微差别doesn't have。您链接到的代码的第99-102行将 vstack 函数的结果分配给相关变量。这些变量的所有先前值都将被替换。

epx = np.vstack(xs)
eph = np.vstack(hs)
epdlogp = np.vstack(dlogps)
epr = np.vstack(drs)

对于你问题的第二部分,我认为你需要尝试一些事情,并提出一个新的问题,说明如果它不起作用你尝试了什么。