- discriminator loss始终是一个常数,没有随着迭代次数的增加而更新
将disciminator loss中的各个分量打印出来,查看原因。
最后发现是因为netD输出的是经过sigmoid激活后的值,而在使用criterion是却采用了BCEWithLogitsLoss
- input的data range [-1, 1]
- 注意使用LeakyReLU(inplace=True) 这里的inplace会替换前一layer的值,如果网络搭建错很可能会修改输入数据
探讨了在深度学习中,Discriminator Loss始终为常数的原因。分析指出,问题源于网络输出经Sigmoid激活,但损失函数采用BCEWithLogitsLoss。文章详细解释了如何检查并修正这一错误,同时提醒注意LeakyReLU的inplace参数可能导致的数据修改风险。
将disciminator loss中的各个分量打印出来,查看原因。
最后发现是因为netD输出的是经过sigmoid激活后的值,而在使用criterion是却采用了BCEWithLogitsLoss
1371
897
6000

被折叠的 条评论
为什么被折叠?