Closed MejiroSilence closed 1 year ago
与issue30中相同情况 但按照您的回复加大entropy loss无法解决 事实上这一步的错误在第一次训练计算entropy loss之前就会出现,修改entropy loss无效 具体出现错误的位置coma_learner的80行 dist_entropy = Categorical(pi).entropy().view(-1)
和pymarl进行对比,pymarl的coma算法的config中mask_before_softmax是FALSE,本仓库中是TRUE, 推测是这导致的问题 然后尝试将basic_controller.py中疑似导致nan的41行agent_outs[reshaped_avail_actions == 0] = -1e10修改后,不再出现nan
nan的问题应该就是这里导致的了
感谢 有时间的话修复可以提交一个fix的补丁~
这个问题是线性层的输出一直变大导致softmax的梯度计算出现nan,在softmax前对网络输出值进行修改可以解决,具体代码如下 actor_outputs = actor_outputs/max(actor_outputs.max(),abs(actor_outputs.min()))
与issue30中相同情况 但按照您的回复加大entropy loss无法解决 事实上这一步的错误在第一次训练计算entropy loss之前就会出现,修改entropy loss无效 具体出现错误的位置coma_learner的80行 dist_entropy = Categorical(pi).entropy().view(-1)
和pymarl进行对比,pymarl的coma算法的config中mask_before_softmax是FALSE,本仓库中是TRUE, 推测是这导致的问题 然后尝试将basic_controller.py中疑似导致nan的41行agent_outs[reshaped_avail_actions == 0] = -1e10修改后,不再出现nan
nan的问题应该就是这里导致的了