[Pytorch系列-63]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 代码总体架构与总体学习思路
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Pytorch系列-63]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 代码总体架构与总体学习思路相关的知识,希望对你有一定的参考价值。
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121940011
目录
1.1 普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程
第3章 CycleGAN-and-pix2pix代码代码结构
第1章 理论概述
1.1 普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程
第2章 CycleGAN-and-pix2pix代码下载
2.1 github代码链接
GitHub - junyanz/pytorch-CycleGAN-and-pix2pix: Image-to-Image Translation in PyTorch
2.2 github使用说明
后续大规模代码,基本上是利用开源代码进行学习。因此,需要学习github的使用规则。
2.3 代码下载
下载代码不需要预先注册和登录。
第3章 CycleGAN-and-pix2pix代码代码结构
3.1 目录结构
3.2 图片转换的两大功能
CycleGAN-and-pix2pix项目包含了两部分功能代码
(1)pix2pix:通过像素到像素的转换来实现的图片转换(有监督图片学习)
(2)CycleGAN:通过CycleGAN神经网络来实现的图片转换(无监督机器学习)
3.3 启动程序的三种方法
(1)图形化:jupter
- CycleGAN.ipynb
- pix2pix.ipynb
备注:
jupter下的代码默认执行Linux的脚步,而不是windows命令。
(2)图形化:pycharm
- train.py
- test.py
通过参数指示是执行pix2pix网络还是CycleGAN网络。
(3)命令行
- train.py
- test.py
通过参数指示是执行pix2pix网络还是CycleGAN网络
3.4 代码总体架构
第4章 数据集
4.1 数据集的分类
两种类型的数据,组织的方式是不相同的。
- pix2pix
- CycleGAN
4.2 数据集的组织方式
(1)pix2pix - 有监督数据集,有标签数据, 成对数据集
有监督数据集或成对数据集:是指一张图片是有两张图片合并而成,左边的是目标图片或标签图片,右边的是源图片。
- train:训练数据集集
- test:测试数据
- val:验证数据集
(2)CycleGAN - 无监督数据集,无标签数据集
普通的,没有任何标签的原始图片。
目标图片和源图片是通过不同的目录分开的。
- trainA:源训练数据集
- trainB:目标训练数据集
- testA: 源测试数据集
- testB:目标测试数据
4.3 数据集的下载
(1)在linux下
可以通过程序脚步自动下载。
(2)在windows下
需要通过手工下载:打开下载数据集的脚本文件,获取数据集的URL链接,手工下载。
如:
- ./datasets/download_pix2pix_dataset.sh
- ./datasets/download_cyclegan_dataset.sh
4.4 训练生成图片的输出结果存放
\\Pytorch\\pytorch-CycleGAN-and-pix2pix\\results\\horse2zebra.pth_pretrained\\test_latest\\images
第5章 神经网络模型
5.1 模型相关的功能
(1)模型自身的源代码
.\\models\\*
(2)预训练模型的存放
- 预训练模型:.\\checkpoints\\xxx_pretrained\\
- 训练过程中生成的模型:.\\checkpoints\\xxx\\
xxx:表示模型的名称。
(3)预训练模型的下载代码
- .\\scripts\\download_cyclegan_model.sh
- .\\scripts\\download_pix2pix_model.sh
在windows下,需要手工打开该文件,获取模型的URL链接,然后手工下载,并存放到.\\checkpoints\\xxx_pretrained\\ 目录中,xxx表示模型名称。
5.2 支持的模型的类型
(1)pix2pix
http://efrosgans.eecs.berkeley.edu/pix2pix/models-pytorch/
(2)CycleGAN
http://efrosgans.eecs.berkeley.edu/cyclegan/pretrained_models/
(3)test
该模型时简化版的CycleGAN模型,已经用于CycleGAN的测试,不能进行训练。
第6章 学习的总体思路
6.1 学习过程
(1)模型使用
使用预训练模型进行测试或验证,感受模型的外部行为以及最终的效果。
(2)继续学习
pytorch-CycleGAN-and-pix2pix的原理以及相关的源代码实现
(3)模型再训练
根据自身应用的需求,重新训练模型。
6.2 模型选择
(1)先学习pix2pix模型
(2)在学习CycleGAN模型
6.3 调试工具的使用
- 命令行:适合测试模型
- jupter:适合测试模型
- pycharm:学习代码以及模型训练
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121940011
以上是关于[Pytorch系列-63]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 代码总体架构与总体学习思路的主要内容,如果未能解决你的问题,请参考以下文章
[Pytorch系列-69]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - test.py代码详解
[Pytorch系列-61]:生成对抗网络GAN - 基本原理 - 自动生成手写数字案例分析
[Pytorch系列-75]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - CycleGAN网络结构与代码实现详解
[Pytorch系列-73]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - Train.py代码详解
[Pytorch系列-65]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 无监督图像生成CycleGan的基本原理
[Pytorch系列-68]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型测试CycleGAN模型