【论文精读+项目实战】基于CycleGan图像风格迁移实战!迪哥带你揭开照片秒变

CycleGAN

不需要配对也能完成网络训练

输入数据只需要两组数据集即可,无需指定对应关系,例如马和斑马



trainA

trainB





patchGAN的作用,输出的是一个N*N的矩阵,需要基于感受野来计算损失
基于感受野在特征图上的预测结果和标签(也需设置成N*N)计算损失



下载数据集,使用bash命令

dataset

下载地址,但是cityscape比较特殊,要去官网下载

$FILE

数据集列表

数据集目录设置,测试集可自己指定

训练

train.py

预训练模型

训练好的一些模型

网址

用别人训练好的模型就可以直接得到一个测试结果,用于测试使用
预训练好的模型放在checkpoints里面,自己训练好的模型也会存放在这里

visdem工具
使用train.py前需要配置参数

configuration 指定参数
如测试集
指定测试集路径
--dataroot 数据路径
--name 预训练模型
--model


results里面存放输出结果,包含一个真的一个假的

训练断点看一步步是怎么做的

训练参数指定

如果显存太小可能就是要改输入大小为128*128,项目最小显存8G以上,12G比较好,不然容易报错,batchsize=1,改图像输入大小

debug模式

先定义好数据,构建数据 ,把路径指定好。读数据

这里判断模型模式是cycle-gan还是pixel2pixel

指定路径

transform 操作


把图像数据映射到0-1间,GAN中希望输入为-1-1更好
A、B操作差不多


batchsize
model构建损失函数

生成器。A-B ,B-A架构一样



一般特征图越来越小,特征图个数越来越多然后还原,最后输出一样和输入,卷积和反卷积

默认加9个残差模块提特征


上采样,反卷积

一定是reflectionpad2d(3)

判别器
最后落到一个点
