- discriminator loss始终是一个常数,没有随着迭代次数的增加而更新
将disciminator loss中的各个分量打印出来,查看原因。
最后发现是因为netD输出的是经过sigmoid激活后的值,而在使用criterion是却采用了BCEWithLogitsLoss
- input的data range [-1, 1]
- 注意使用LeakyReLU(inplace=True) 这里的inplace会替换前一layer的值,如果网络搭建错很可能会修改输入数据
将disciminator loss中的各个分量打印出来,查看原因。
最后发现是因为netD输出的是经过sigmoid激活后的值,而在使用criterion是却采用了BCEWithLogitsLoss