pytorch-CycleGAN-and-pix2pix-master的操作使用
我针对如何使用pytorch-CycleGAN-and-pix2pix-master的代码进行了简单讲解,代码链接在下:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
visdom可视化
首先启动visdom可视化,可以看到loss变化等
python -m visdom.server
然后在本地网页打开
即可看到随时变化数据可视化
这里我们要注意,如果我们不打开visdom的话,可能程序会中途意外停止,所以建议打开visdom,无论是否要看loss变化。
数据处理
通过下载官方数据集,我们发现cyclegan和pix2pix数据集是不一样的;
cyclegan的很简单,就是trainA,trainB,testA,testB。
而pix2pix则需要两张size相同的对应图片左右拼接对齐,这里我写了一个pix2pix数据集制作代码,很简单即可生成。
pix2pix需要train,test,两个文件夹数据集。
cycleGAN
- 训练
在terminal中输入
python train.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
其中,第一个--
后面的是数据集位置,第二个--
的是训练出来的模型,存放的文件夹名称(在checkpoints文件夹中,后面会说到),第三个--
是使用的模型。
这样模型就训练好了,在模型的训练期间或者训练结束后,在checkpoints文件夹中打开web文件夹,可以看到实时训练的结果,同时checkpoints文件夹中的这些pth文件,就是我们所训练出来的模型。
- 测试
在terminal中输入
python test.py --dataroot ./datasets/maps --name maps_cyclegan --model cycle_gan
其中,第一个--
后面的是数据集位置,第二个--
的是训练出来的模型,存放的文件夹名称(和上面一样,就是checkpoints文件夹中的那个),第三个--
是使用的模型。
这里我们测试完成后,就可以在result文件夹中看到结果。
这里我们会发现有很多的结果,可是我们就想要我们生成器所训练的最终结果,那我们该怎么办呢?
这里我们需要在checkpoints中创建一个全新的文件夹,文件夹名称可以随意设置,我的建议是在之前训练的时候的那个文件夹名称后面加上_predect,比如maps_cyclegan_predect,这样我们创建好文件夹之后,我们从maps_cyclegan中找到latest_net_G_A.pth,这是last训练出来的生成器模型,将其复制到我们创建好的文件夹maps_cyclegan_predect中,并且将latest_net_G_A.pth改名为latest_net_G.pth。
然后我们再在terminal中输入:
python test.py --dataroot datasets/maps --name maps_cyclegan_pretrained --model test --no_dropout
这样我们就可以在resule中的maps_cyclegan_pretrained文件中看到只有训练完成的生成器所生成的结果啦。
pix2pix
同上一样,我们通过同样的方式打开visdom,查看数据可视化。
- 训练
在terminal中输入
python train.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
- 测试
再在terminal中输入
python test.py --dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA
测试完成后就可以在result中看到结果了
同样的方式,我们也可以单独提取出来latest_net_G.pth,放在一个单独的_predect文件夹中
然后我们再在terminal中输入:
python train.py --dataroot ./datasets/facades --name facades_pix2pix_predect --model pix2pix --direction BtoA
就可以在result中看到结果了。