python - Karpathy 的代码训练神经网络使用策略梯度打乒乓球

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

我正在查看 Andrej Karpathy 的“使用原始像素的策略梯度训练神经网络 ATARI Pong 代理”https://gist.github.com/karpathy/a4166c7fe253700972fcbc77e4ea32c5 。我不是 Python 爱好者,所以我尝试在 Matlab 中编写这段代码。我有 2 个问题。

问题 1:我注意到 xshsdlogpsdrs 已初始化为 [],[],[],[](第 67 行)并在每集之后重置为 [],[],[],[](第 103 行)。但 epxephepdlogpepr 既不初始化也不重置。它们似乎永远在生长(第 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/

相关文章:

python - celery apply_async 窒息 rabbitmq

matlab - 如何调整 MATLAB 矩阵的大小

machine-learning - 高斯过程多类分类

python - SVC 分类器支持 python Sklearn 中的向量类

python - Django 在运行时添加模型方法

python - 我不知道 s[::-1] 在 Python 中是什么

regex - Matlab:使用正则表达式获取中间有空格的字符串

python - 心脏病预测的反向传播 - 结果不准确?

python - 如何以与 shell 无关、与语言无关的方式从命令行获取当前 Linux 进程 ID

matlab - 在不打开新实例的情况下从 Sublime Text 3 运行 MATLAB 脚本