用多少眼泪才能让你相信 发表于 2024-6-9 15:19:42

GAN干系知识

GAN训练tricks



[*]generator的末了一层一样平常利用tanh激活函数,这样可以使训练更加稳定。但是我在实际用的时间,利用sigmoid和tanh的效果是差不多的;
[*]需要注意:discriminator的末了一层的输出的激活函数选择tanh,会导致cuda trigger问题,因此,一样平常来说,discriminator会选择sigmoid函数作为激活函数。
[*]在实际训练的时间,G的loss在不断地降落,而D的loss在上升,这不是说网络性能不好,是正常的,只要两者loss末了收敛到一个比较稳定的值附近就可以。
[*]G的学习率通常来说比D的学习率大一个数量级就会好许多。
PatchGAN (FCN)

当天生的图片过大时,可能天生的图片中只有局部区域存在伪影,而别的部门天生质量很好,此时若让鉴别器对整张图片进行判断,那么一个单一的数值可能无法良好地描述这张图片的质量。 PatchGAN 把一张完整的待判断图片利用滑动窗口裁剪成 70x70 巨细的小图片。接着将这些图片依次输入鉴别器进行判断。末了将鉴别器对多张小图的评分求和,作为最终评分。
   我的看法:这种布局和 FCN 全卷积网络 Fully Convolutional Network 不谋而合,若在 FCN 感受野到达 70x70 的那一层进行均值池化,则其效果与 patchGAN 是类似的,甚至用 FCN 更好。
BN为什么利用mini-batch?

主要是由于目前主流的梯度更新方式是mini-batch gradient decent,小批的梯度降落,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,降落起来就不容易跑偏,淘汰了随机性。另一方面因为批的样本数与整个数据集相比小了许多,盘算量也不是很大。
为什么BN层一样平常用在线性层和卷积层背面,而不是放在非线性单位后

因为非线性单位的输出分布形状会在训练过程中变化,归一化无法消除它的方差偏移,相反的,全连接和卷积层的输出一样平常是一个对称,非稀疏的一个分布,更加类似高斯分布,对他们进行归一化会产生更加稳定的分布。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: GAN干系知识