深度学习_GAN_GAN模型训练的优化技巧

  1. 归一化图像输入到[-1,1]之间。
  2. 生成器最后一层使用tanh激活函数。
  3. 生成器的Loss采用min(log(1-D))。因为原始的生成器Loss存在梯度消失问题
  4. 训练生成器的时候,考虑反转标签,real=fake,fake=real。
  5. 不要在均匀分布上采样,应该在高斯分布上采样。
  6. 一个Mini-batch里面必须只有正样本,或者负样本。不要混在一起训练。
  7. 如果用不了Batch Norm,可以用Instance Norm避免稀疏梯度,即少用ReLU,MaxPool。可以用LeakyReLU替代ReLU。
  8. 下采样可以用Average Pooling或者Convolution + stride替代。上采样可以用PixelShuffle,ConvTranspose2d + stride。
  9. 平滑标签或者给标签加噪声。平滑标签,即对于正样本,可以使用0.7-1.2的随机数替代;对于负样本,可以使用0-0.3的随机数替代。给标签加噪声:即训练判别器的时候,随机翻转部分样本的标签。
  10. 如果可以,可以使用DCGAN或者混合模型:KL+GAN,VAE+GAN。
  11. 生成器使用Adam,判别器使用SGD。
  12. 尽快发现错误:比如判别器Loss为0,说明训练失败了;如果生成器Loss稳步下降,说明判别器没发挥作用。
  13. 不要试着通过比较生成器和判别器的Loss的大小来解决训练过程中的模型坍塌问题。比如:Loss D > Loss G:train D。Loss G > Loss D:train G。
  14. 如果有标签,请尽量利用标签信息来训练。
  15. 给判别器的输入加入一些噪声,给G的每一层加一些人工噪声。
  16. 多训练判别器,尤其是加了噪声的时候。
  17. 对于生成器,在训练和测试的时候使用dropout。
发布了94 篇原创文章 · 获赞 37 · 访问量 3434

猜你喜欢

转载自blog.csdn.net/Rocky6688/article/details/103660597
GAN
今日推荐