关于CycleGAN
CycleGAN即循环对抗生成网络,该模型实现了一种在没有配对示例的情况下学习将图像从源域 X 转换到目标域 Y 的方法。 它只需要两种域的数据,不需要他们有严格对应关系,是一种新的无监督的图像迁移网络。
CycleGAN 网络本质上是由两个镜像对称的 GAN 网络组成,模型结构如图所示
数据集
使用ImageNet数据集,仅选取苹果和橘子部分。
所有图像被统一缩放为256×256像素大小。
对数据进行了随机裁剪、水平随机翻转和归一化的预处理。
将数据预处理后的结果转换为 MindRecord 格式的数据。
数据集下载与加载
数据可视化
构建生成器
参考的 ResNet 模型的结构,根据输入图片的大小(128×128)采用6个残差块相连,超参数 n_layers
参数控制残差块数。
构建判别器
判别器是一个二分类网络模型,输出判定该图像为真实图的概率。
优化器和损失函数
选择合适的优化器(如Adam)来优化生成器和判别器的参数。
前向计算
搭建模型前向计算损失的过程。
计算梯度和反向传播
根据损失函数计算梯度,并反向传播更新生成器和判别器的参数。
模型训练
交替训练判别器和生成器,先固定生成器训练判别器,再固定判别器训练生成器。
模型推理
加载训练好的生成器网络模型参数文件对原图进行风格迁移,生成新的图像。
展示原图与生成图的对比,验证模型效果。