GAN的技巧:
1.对真实图片进行归一化,与生成图片分布一样,也就是[-1,1].
2.随机噪声使用高斯分布,不要使用均匀分布,也就是在代码中使用torch.randn,而不是torch.rand
3.初始化权重很有必要,详细见model.py中的weight_init函数
4.在训练时,在鉴别器中产生的noise,生成器也要用这个noise进行参数,这点很重要。我最开始的时候就是鉴别器随机产生noise,生成器也随机产生noise,训练得很不好。
5.在训练过程中,很有可能鉴别器的loss等于0(鉴别器太强了,起初我试过减小鉴别器的学习率,但还是会有这个情况,我猜想原因是在某一个batch中,鉴别器恰好将随机噪声产生的图片和真实图片完全区分开,loss为0),导致生成器崩溃(梯度弥散),所以最好按多少个epoch保存模型,然后在导入模型再训练。个人觉得数据增强和增大batchsize会减弱这种情况的可能性,这个还未实践。
此外可以参考:GAN的相关原理与技巧
来源:CSDN
作者:weixin_39272255
链接:https://blog.csdn.net/weixin_39272255/article/details/103582631