我正在研究Andrej Karpathy"培训神经网络ATARI Pong代理与原始像素的策略渐变" https://gist.github.com/karpathy/a4166c7fe253700972fcbc77e4ea32c5。我不是Python人,所以我试图在Matlab中编写这段代码。我有两个问题。
问题1:我注意到xs
,hs
,dlogps
和drs
被初始化为[],[],[],[]
(第67行)并重置为{{ 1}}每集后(第103行)。但[],[],[],[]
,epx
,eph
和epdlogp
既未初始化也未重置。它们似乎永远在增长(第99-102行)。我对么?我不熟悉epr
的细微差别。
问题2:如果我有一个向上,向下,向右和向左移动玩家移动选项的游戏,我将如何修改此代码以使其工作(除了对输出图层中4个节点的明显修改)?
感谢。
答案 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)
对于你问题的第二部分,我认为你需要尝试一些事情,并提出一个新的问题,说明如果它不起作用你尝试了什么。