我从Keras的Paper Edge-Connect(https://github.com/knazeri/edge-connect)实现了提议的GAN模型,并在KITTI数据集上进行了一些培训。现在,我试图弄清楚模型内部发生了什么,因此我有几个问题。
1。初步培训(100个时期,500个批次/时期,10个样本/批次)
首先,我按照论文中的建议训练了模型(包括样式损失,感知损失,L1和对抗损失)
乍一看,该模型收敛到不错的结果:
这是被屏蔽的输入(右)的生成器(左)的输出
张量板上的大多数图形看起来也很不错: (这些都是GAN模型中的所有值,包含生成器的总损耗(GENERATOR_Loss),基于生成的图像(L1,perc,样式)的不同损耗以及对抗性损耗(DISCRIMINATOR_loss)
仔细观察鉴别器时,情况看起来会有所不同。所生成图像的鉴别器的对抗损失稳步增加。 训练鉴别器(50/50假/真实示例)时的损失根本不会改变:
当查看鉴别器输出激活的直方图时,它始终输出约0.5的值。
在我的问题/结论中,感谢您的反馈:
2。。因此,我开始了第二次训练,这次仅使用生成器中的对抗损失! (〜16个纪元,每个纪元500个批次,每个批次10个样本)
这一次,鉴别器似乎能够在一段时间后区分真假。 (prob_real是分配给真实图像的平均概率,反之亦然) 激活的直方图看起来也不错:
但是在大约4k Samples之后,东西以某种方式开始发生变化,并且在大约7k时出现了发散... 同样,来自生成器的所有样本都如下所示:
谈到我的第二部分问题/结论:
谢谢大家的投入!
答案 0 :(得分:0)
如果辨别器在网络开始时直接输出0.5的概率,则意味着该辨别器的权重未更新,并且在训练中不起作用,这进一步表明它无法区分即将来临的真实图像和伪造图像从发电机。为了解决此问题,请尝试将高斯噪声添加为鉴别器的输入或进行标签平滑,这是非常简单有效的技术。 在回答您的问题时,结果都是基于对抗性损失以外的损失,可以使用的技巧是尝试先对网络进行除对抗性损失之外的所有损失的训练,然后对对抗性进行微调损失,希望对您有所帮助。 对于您问题的第二部分,生成的图像似乎面临着模式collapase的问题,在这种模式下,它们倾向于学习颜色,从1张图像退化并将其传递给其他图像,请尝试通过减小批大小来解决它或使用展开的甘斯