starry-sky6688/MARL-Algorithms

咨询一个关于qmix的问题

Closed this issue · 1 comments

您好,作者,非常感谢您在github上分享的代码,我是一个深度强化学习初学者,目前我在自己的一个基于完全合作的游戏环境中尝试着复现qmix,但是遇到一个问题,就是我不知道如何定义padded_n,我看您的算法中'padded': np.empty([self.size, self.episode_limit, 1])是这样定义的,np.empty可以产生一个随机数组,经过mask = 1 - batch["padded"].float(),难道功能是随机抹掉填充的经验的td_error,而且我不知道怎么观察哪些是填充经验,目前我就是随便定义了一个,如padded_n = np.empty([4]),虽然程序可以正常运行,但是效果没有非常理想,我不知道是不是padded_n的问题,希望您可以指点迷津,万分感谢!

https://github.com/starry-sky6688/StarCraft/blob/2c07045f294ad4eeb5ab8a8d25cf43d0efea4cb3/common/rollout.py#L80

看./common/rollout.py,里面对于长度不够episode_limit的,要用0来填充,对应的padded就是0

你发的'padded': np.empty([self.size, self.episode_limit, 1])只是在buffer里预先定义好的,后面会拿真正的样本更新它