CycleGAN训练自己的数据集

GitHub地址:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
先看一下论文给出的效果:
CycleGAN训练自己的数据集_第1张图片

首先准备自己的数据集。

在datasets文件夹下新建try文件夹,文件夹命名如下:
在这里插入图片描述
其中trainA、B中放入需要进行风格迁移的图片。
CycleGAN训练自己的数据集_第2张图片
CycleGAN训练自己的数据集_第3张图片
分别是没有水的地面,和淋了水的地面。

其次进行pip install安装需要的模块

pip install visdom
pip install dominate

运行train.py脚本

python train.py --dataroot ./datasets/try/ --name try_cyclegan --model cycle_gan --pool_size 50 --no_dropout --gpu_ids 0

其中GPU根据自己有几块设定

运行test.py脚本

首先将testA.B中放入要转换的图片。

python test.py --dataroot ./datasets/try/ --name test_cyclegan --model cycle_gan --phase test --no_dropout

结果展示

结果将保存在\checkpoints\try_cyclegan\web\images

这里展现一下效果图,发现经过200epoch的训练模型已经学习到了部分特征。


可以看到本来有水的地面经过风格迁移水渍变淡,但仍不好。

可以看到本来没有水渍的地面出现水渍,效果以假乱真。

改变输出图片分辨率

在base_option.py中修改

		parser.add_argument('--load_size', type=int, default=1024, help='scale images to this size')
        parser.add_argument('--crop_size', type=int, default=1024, help='then crop to this size')

即可得到1024 * 1024的输出结果。

训练轮次指定

		parser.add_argument('--n_epochs', type=int, default=100, help='number of epochs with the initial learning rate')
        parser.add_argument('--n_epochs_decay', type=int, default=100, help='number of epochs to linearly decay learning rate to zero')

解释见help,总共n_epochs + n_epochs_dacay轮

每隔多少轮保存一次权重

        parser.add_argument('--save_epoch_freq', type=int, default=5, help='frequency of saving checkpoints at the end of epochs')

输出结果

real_A:表示输入的真实的A图片
real_B:表示输入的真实的B图片
fake_B:表示真实图片A生成的假冒B风格图片
fake_A:表示真实图片B生成的假冒A风格图片
rec_A:表示fake_B再生成回A风格图片
rec_B:表示fake_A再生成回B风格图片
idt_B:表示真实图片A生成的A风格图片
idt_A:表示真实图片B生成的B风格图片

你可能感兴趣的:(pytorch,深度学习,python)