救命,我已经在这儿卡了半个月了。
最近在跑一个Gan模型,但是怎么都训练不出来,真的好头疼。
——
1、单独测试生成器,只使用MSE_Loss,可以生成图像,只是不太清晰,就像这样:(上面是groundtruth,下面是生成的)
2、单独测试判别器,用vanilla loss的softplus变形,测试噪音和真实图像的判别结果,由Sigmoid输出:
——
结果都挺好的,生成器可以准确生成图像,判别器可以准确判别d_lr结果,但是对抗训练就会出问题!
1、在lr 和 d_lr学习率都为0.0001的条件下,生成的图像和判别器输出如下:
可以看到,判别器对真实图像的分数维持在0.55左右,生成图像的分数维持在0.44左右,d_loss和g_loss小范围波动
2、我怀疑是不是两个分数差的不多,导致生成器没办法获得有用的信息,所以采用更新一次生成器,后面更新两次判别器的方法,结果如下:
这时候,真假样本相差的分数确实更大了,但是继续训练,就会出现:
直接两个都判为真,这是什么问题?
——
我的问题是,我的训练过程有没有什么问题?以及为什么多更新一次判别器会出现都判为真的情况?
大家有没有什么意见,还望不吝赐教!