我使用 A2C 算法对 Atari Pong 游戏的 PyTorch 有两种不同的实现。两种实现方式相似,但某些部分不同。
上述代码来自以下 Github 存储库:https ://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On/blob/master/Chapter10/02_pong_a2c.py融合得非常好!
您可以在 Maxim Lapan 的书Deep Reinforcement Learning Hands-on第 269 页中找到解释
这是平均奖励曲线:
上面的实现是我根据 Maxim Lapan 的书创建的。但是,代码没有收敛。我的代码有一小部分是错误的,但我无法指出它是什么。我已经为此工作了将近一个星期。
这是平均奖励曲线:
有人可以告诉我代码的问题部分,我该如何解决?
更新 1
我决定用一个更简单的环境来测试我的代码,即Cartpole-v0
.
这是代码:https ://colab.research.google.com/drive/1zL2sy628-J4V1a_NSW2W6MpYinYJSyyZ?usp=sharing
甚至该代码似乎也没有收敛。仍然看不到我的问题在哪里。
更新 2
我认为该错误可能在ExperienceSource类或Agent类中。
更新 3
以下问题将帮助您理解这些类ExperienceSource
和ExperienceSourceFirstLast
.