starry-sky6688 / MARL-Algorithms

Implementations of IQL, QMIX, VDN, COMA, QTRAN, MAVEN, CommNet, DyMA-CL, and G2ANet on SMAC, the decentralised micromanagement scenario of StarCraft II
1.46k stars 283 forks source link

策略梯度算法Reinforce的问题 #77

Closed Duke-Allen closed 2 years ago

Duke-Allen commented 2 years ago

您好,代码上有一处地方不太理解,所以想请教一下。 reinforce.py中计算每条经验的returns时,为什么要乘terminated?不是已经有mask了吗?

微信截图_20220117112317
starry-sky6688 commented 2 years ago

mask 是通过padding得到的,为了把填充的step抹掉

terinated是为了把最后一个状态上的return抹掉,最后一个状态由于是结束状态,它对应的return不应该被传到前一个状态

Duke-Allen commented 2 years ago

可terminated在结束状态前不都是0吗,这样在算之前状态时gamma那项不就没用了吗

starry-sky6688 commented 2 years ago

可terminated在结束状态前不都是0吗,这样在算之前状态时gamma那项不就没用了吗

你看上面101行,terminated=1-terminated,反过来了

Duke-Allen commented 2 years ago

可terminated在结束状态前不都是0吗,这样在算之前状态时gamma那项不就没用了吗

你看上面101行,terminated=1-terminated,反过来了

嗷嗷,没注意到抱歉,感谢