我正在查看 Andrej Karpathy 的“使用原始像素的策略梯度训练神经网络 ATARI Pong 代理”https://gist.github.com/karpathy/a4166c7fe253700972fcbc77e4ea32c5 。我不是 Python 爱好者,所以我尝试在 Matlab 中编写这段代码。我有 2 个问题。
问题 1:我注意到 xs
、hs
、dlogps
和 drs
已初始化为 [],[],[],[]
(第 67 行)并在每集之后重置为 [],[],[],[]
(第 103 行)。但 epx
、eph
、epdlogp
和 epr
既不初始化也不重置。它们似乎永远在生长(第 99-102 行)。我对么?我不熟悉 np.vstack
的细微差别。
问题 2:如果我的游戏具有玩家向上、向下、向右和向左移动选项,我需要如何修改此代码才能使其正常工作(除了对输出层中的 4 个节点进行明显修改之外)?
谢谢。
最佳答案
我认为您正在想象 numpy.vstack
的细微差别,它 doesn't have 。您链接到的代码的第 99-102 行将 vstack 的结果分配给 vstack
函数给相关变量。这些变量的任何先前值都将被替换。
epx = np.vstack(xs)
eph = np.vstack(hs)
epdlogp = np.vstack(dlogps)
epr = np.vstack(drs)
对于问题的第二部分,我认为您需要尝试一些东西,并提出一个新问题,显示您已经尝试过的方法(如果不起作用)。
关于python - Karpathy 的代码训练神经网络使用策略梯度打乒乓球,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49319961/