利用GAN进行图像修复与对抗攻击实战
1. 基于GAN的图像修复
1.1 Wasserstein损失使用要点
在训练非常深的神经网络时,梯度裁剪存在一些问题。比如梯度/权重频繁被限制在 [-c, c] 区间,训练结束时很多参数会停留在 -c 或 c ,只有少数参数值在区间内;而且将梯度限制在较大或较小范围,可能导致“隐形”的梯度消失或爆炸,造成计算资源的浪费。
为解决这些问题,有人提出在判别器损失中添加惩罚项,即梯度惩罚。使用Wasserstein损失,需要遵循以下步骤:
1. 去除判别器网络最后一层的Sigmoid函数。
2. 计算损失时不应用对数函数。
3. 使用梯度惩罚(对于浅层神经网络,可简单裁剪权重)。
4. 使用RMSprop而不是Momentum或Adam来训练网络。
1.2 图像修复GAN模型训练
现在可以开始训练用于图像修复的GAN模型。可以从 https://github.com/DAA233/generative-inpainting-pytorch 获取原始PyTorch实现的代码,并进行修改以实现自己的模型。使用CelebA数据集作为训练数据集。
1.3 图像修复模型设计
图像修复的GAN模型由两个生成器网络(粗生成器和细化生成器)和两个判别器网络(局部判别器和全局判别器)组成。
- 生成器模型 :采用两阶段从粗到细的架构。
- 粗生成器是一个17层的编码器 - 解码器
超级会员免费看
订阅专栏 解锁全文

23

被折叠的 条评论
为什么被折叠?



