CycleGAN:在没有输入-输出成对的情况下学习图像到图像的转换
github地址:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
上面的是CycleGAN和pix2pix的结合版本 比较容易操作和看懂
原版地址:https://github.com/junyanz/CycleGAN
Prerequisites
Linux or macOS
Python 3
CPU or NVIDIA GPU + CUDA CuDNN
用的是python3.6的环境 每做一个新的工程最好新建一个虚拟环境
conda create -n cyclegan python=3.6
conda activate cyclegan
克隆项目
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
cd pytorch-CycleGAN-and-pix2pix
pytorch需要0.4+ 根据自己显卡自行安装
安装依赖包
pip install -r requirements.txt
下载数据集
bash ./datasets/download_cyclegan_dataset.sh horse2zebra
建议的是先下载个数据集和预训练模型测试
bash ./datasets/download_cyclegan_dataset.sh horse2zebra
测试
python test.py --dataroot datasets/horse2zebra/testA --name horse2zebra_pretrained --model test --no_dropout
测试的结果在result文件夹里
如果是想要训练自己的数据集或者用官方给的数据集自己训练一个模型
例如我要训练一个官方给了数据集facades的模型
bash ./datasets/download_cyclegan_dataset.sh facades
python train.py --dataroot ./datasets/facades --name facades_cyclegan --model cycle_gan
训练好了用测试代码测试一下就好了
python test.py --dataroot ./datasets/facades --name facades_cyclegan --model cycle_gan
训练的效果图
遇到的问题
1.CUDA out of memory 这个问题一般是内存不够 或者是cuda版本的问题 这个项目训练的时候默认用第一张卡 显卡多的话可以换卡跑 这个项目对显卡的要求挺大的
2.训练完出现这种问题
训练的过程中也可以在result文件夹下的一个web文件下看到训练的效果图 一般都会有大致的模型啥的 20个epoch之后要是还不正常就是有问题 及时停止训练 找原因 我一开始以为是数据集的问题 结果换了两个数据集一直train 浪费半天时间。
解决方法:一开始是用pix2pix训练成功了 然后才去训练的CycleGAN。可能pix2pix训练的时候改了代码还是改了什么东西 导致CycleGAN训练出问题。就重新下载了一下这个项目 直接train了CycleGAN就成功了。