作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122077757


目录

第1章 概述

1.1 代码架构与总体思路

1.2 本章基本思路

1.3 训练方式

第2章 测试步骤

第1步:下载或克隆pytorch-CycleGAN-and-pix2pix所有代码

第2步:切换当前目录

第3步:安装依赖文件(可视化工具)

第4步:下载pix2pix数据集

第5步:下载预训练模型

第6步:启动可视化工具visdom

第7步:模型训练

第8步:效果展示



第1章 概述

1.1 代码架构与总体思路

[Pytorch系列-63]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 代码总体架构_文火冰糖(王文兵)的博客-CSDN博客作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录第1章 理论概述1.1普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程第2章 CycleGAN-and-pix2pix代码下载2.1 github代码链接2.2 github使用说明2.3 代码下载第3章CycleGAN-and-pix2pix代码代码结构3.1 目录结构3.2 图片转换的两大功能3.3 启动程序的三种方法..https://blog.csdn.net/HiWangWenBing/article/details/121940011

1.2 本章基本思路

(1)Pycharm进行调试,替代命令行或Jupter

(2)选择所需要硬盘空间小的数据进行测试

(3)熟悉pytorch-CycleGAN-and-pix2pix项目的使用

(4)熟悉pix2pix模型训练

1.3 训练方式

  • 从头开始训练
  • 从预预训练模型开始训练(官网提供的预训练模型只包括G网络,不包括D网络)
  • 从上次训练结果开始训练

第2章 测试步骤

第1步:下载或克隆pytorch-CycleGAN-and-pix2pix所有代码

如果已经完成,可以跳过此步骤。

(1)Linux 命令行方式:!git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

(2)Windows浏览器下载:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

备注:

  • 可以把代码下载或拷贝到jupter的工作目录中,以便后续可以通过jupter运行代码。

第2步:切换当前目录

(1)运行方式

  • Windows 命令行方式:cd xxx
  • jupter方式:
import os
os.chdir('pytorch-CycleGAN-and-pix2pix/')
  • Pycharm: 把工程文件copy到Pycharm工作目录中即可

第3步:安装依赖文件(可视化工具)

如果已经完成,可以跳过此步骤。

  • Windows 命令行方式

pip install -r requirements.txt

  • Jupter方式
!pip install -r requirements.txt

torch>=0.4.1
torchvision>=0.2.1
dominate>=2.3.1
visdom>=0.1.8.3

第4步:下载pix2pix数据集

(1)下载方式

  • Linux 命令行方式

bash ./datasets/download_pix2pix_dataset.sh facades

  • Jupter方式
!bash ./datasets/download_pix2pix_dataset.sh facades
  • Windows浏览器方式

根据./datasets/download_pix2pix_dataset.sh的内容,获取数据集URL, 通过URL手工下载:Index of /pix2pix/datasets

备注:

  • 有些数据集很多,高达8G, 下载时需留意硬盘空间是否可以承载。
  • pix2pix的数据集是成对出现的。
  • Facades和cityscapes数据集最小,方便测试验证。

(2)数据集的存放路径

  • 存放路径:pytorch-CycleGAN-and-pix2pix\datasets

备注:必须同名,不能改名

 (3)支持的数据集

支持的数据集:

  • cityscapes: 城市轮廓转换成城市街景实体
  • night2day:  晚上转换成白天
  • edges2handbags:边沿转换成手提包
  • edges2shoes:边沿转换成鞋子
  • facades:房屋外观转换成房子实体(所需要的内存空间最小)
  • maps:地图轮廓转换成实体地图

第5步:下载预训练模型

(1)下载方式

  • Linux命令行方式
bash ./scripts/download_pix2pix_model.sh facades_label2photo
  • jupter方式
!bash ./scripts/download_pix2pix_model.sh facades_label2photo
  • Windows方式

根据download_pix2pix_model.sh脚步的内容,获取链接:

http://efrosgans.eecs.berkeley.edu/pix2pix/models-pytorch/

(2)存放路径

./checkpoints/{xxx}/latest_net_G.pth

xxx为模型名称。

备注:

  • 需要把模型的名称,改为latest_net_G.pth,并存放在{xxx}目录中,这与使用预训练模型进行测试是不一样的。
  • 官方的预训练模型,只有G网络的参数,没有D网络的参数,因此基本上需要重新训练。

第6步:启动可视化工具visdom

(1)启动visdom server

conda info -e

conda activate pytorch-gpu-os

python -m visdom.server

(2)启动visdom Client

http://localhost:8097

第7步:模型训练

(1)CPU方式(仅用于学习代码)运行

--dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA

--gpu_ids -1 --niter_decay 1 --niter 1

--display_freq 1 --update_html_freq 1 --print_freq 1 --save_epoch_freq 5 --save_latest_freq  100

  • --gpu_ids -1:表示使用CPU进行训练。
  • -print_freq 1:每迭代多少次,在终端上打印一次提示信息, 默认100.
  • -display_freq 1:每迭代多少次,在visdom客户端可视化一次图像,默认400
  • --update_html_freq 1:每迭代多少次,更新一次html输出文件,默认1000.
  • --save_epoch_freq 5:    每迭代多少次,存储一次模型参数
  • --save_latest_freq  100:每迭代多少次,存储一次模型参数
  • --niter 1:迭代的epoch次数, 默认100
  • --niter_decay 1:迭代的epoch次数,对学习率进行一次衰减,默认100,总的epoc=niter + niter_decay + 1

备注:

  • 该项目,采用GPU训练时,需要>8G的GPU内存,如果GPU条件不满足,在学习代码流程时,可以使用CPU进行训练
  • 之所以修改这些默认参数,是因为CPU的训练太慢,不利于学习的效率。

(2)GPU方式(适用于正式训练模型)

--dataroot ./datasets/facades --name facades_pix2pix --model pix2pix --direction BtoA

备注:

在GPU的情况下,使用默认的参数。

(3)重头训练与基于先前的训练结果继续训练

--continue_train :如果设置,则基于先前的训练结果继续训练,如果不设置,则从头开始训练。

第8步:效果展示

(1)控制台打印显示

dataset [AlignedDataset] was created
The number of training images = 400
initialize network with normal
initialize network with normal
model [Pix2PixModel] was created
---------- Networks initialized -------------
[Network G] Total number of parameters : 54.414 M
[Network D] Total number of parameters : 2.769 M
-----------------------------------------------

(epoch: 1, iters: 1, time: 0.861, data: 8.576) G_GAN: 1.932 G_L1: 35.501 D_real: 0.595 D_fake: 1.196 
(epoch: 1, iters: 2, time: 0.861, data: 0.001) G_GAN: 1.457 G_L1: 52.500 D_real: 1.197 D_fake: 1.248 
(epoch: 1, iters: 3, time: 0.791, data: 0.000) G_GAN: 0.957 G_L1: 39.967 D_real: 1.115 D_fake: 1.119

............................

(epoch: 2, iters: 400, time: 0.973, data: 0.000) G_GAN: 1.775 G_L1: 39.182 D_real: 0.137 D_fake: 0.277 
End of epoch 2 / 2      Time Taken: 408 sec
learning rate = 0.0000000

Process finished with exit code 0

(2)visdom图形化显示

  • loss

  • 训练结果

第9步:输出文件

(1)图片文件:

目录:

  • pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\web\images

(2)模型文件

目录

  • pytorch-CycleGAN-and-pix2pix\checkpoints\facades_pix2pix\

内容:

  • latest_net_G.pth:最新的G网络模型文件, 再训练时,可以 基于此文件进行继续训练
  • latest_net_D.pth:最新的D网络模型文件,再训练时,可以 基于此文件进行继续训练
  • 200_net_G.pth:迭代n次的G网络模型文件
  • 200_net_D.pth:迭代n次的D网络模型文件

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122077757

[Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型相关推荐

  1. [Pytorch系列-72]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练CycleGAN模型

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  2. [Pytorch系列-69]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - test.py代码详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[Pytorch系列-66]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleG ...

  3. [Pytorch系列-66]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型测试pix2pix模型

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  4. 利用Tensorflow构建生成对抗网络GAN以生成数据

    使用生成对抗网络(GAN)生成数据 本文主要内容 介绍了自动编码器的基本原理 比较了生成模型与自动编码器的区别 描述了GAN模型的网络结构 分析了GAN模型的目标核函数以及训练过程 介绍了利用Goog ...

  5. Keras实现生成对抗网络(GAN)(生成二维平面上服从某一分布的点)

    GAN原理 相关数学推导可参考 李宏毅https://www.bilibili.com/video/av36779967/?p=4 通俗的比喻:制造假钞(G)和警察(D)对抗的过程.假钞制造者制造假钞 ...

  6. [人工智能-深度学习-61]:生成对抗网络GAN - 图像融合的基本原理与案例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  7. pytorch生成对抗网络GAN的基础教学简单实例(附代码数据集)

    1.简介 这篇文章主要是介绍了使用pytorch框架构建生成对抗网络GAN来生成虚假图像的原理与简单实例代码.数据集使用的是开源人脸图像数据集img_align_celeba,共1.34G.生成器与判 ...

  8. [Python图像识别] 四十九.图像生成之什么是生成对抗网络GAN?基础原理和代码普及

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. ECCV2022 | 生成对抗网络GAN论文汇总(图像转换-图像编辑-图像修复-少样本生成-3D等)...

    图像转换/图像可控编辑 视频生成 少样本生成 图像外修复/结合transformer GAN改进 新数据集 图像增强 3D 图像来源归属分析 一.图像转换/图像可控编辑 1.VecGAN: Image ...

  10. 【CV秋季划】生成对抗网络GAN有哪些研究和应用,如何循序渐进地学习好(2022年言有三一对一辅导)?...

    GAN自从被提出来后,技术发展就非常迅猛,已经被落地于众多的方向,其应用涉及图像与视频生成,数据仿真与增强,各种各样的图像风格化任务,人脸与人体图像编辑,图像质量提升. 那我们究竟如何去长期学好相关的 ...

最新文章

  1. 条件变量 pthread_cond_wait
  2. 智能车竞赛技术报告 | 智能车视觉 - 天津大学 - 北洋钽星
  3. hdu 5256 LIS变形
  4. HDU 1498:50 years, 50 colors(二分图匹配)
  5. 添加翻转功能的list类
  6. Angular 自定义 structural 指令的一个例子
  7. 36氪联合阿里云,共同研制中小企业发展「催化剂」
  8. 资料:vue 3.0+版本发布
  9. win7日历加入农历_还是农历更亲切,春节制作一个带农历的日历,欢欢喜喜过新年...
  10. 微软鼠标测试软件,微软sculpt鼠标评测 | 微软sculpt人体工学无线鼠标评测_什么值得买...
  11. vue实现下载excel表格俩种方式
  12. 写latex 遇到bib中参考文献 的俄文人名(类似于带有声调的拼音字母)如何转义?
  13. Discuz!x1.5实现在线文档(doc、ppt、pdf)播放
  14. Linux命令:ifconfig出现command not found 的解决办法
  15. 哈理工计算机学院学生会技术部,某大学学生会网络技术部规章制度(网友投稿)...
  16. [每日100问][2011-9-08]iphone开发笔记,今天你肿了么
  17. 如何系统自学黑客(网络安全)?
  18. 苹果签名多少钱?怎么联系客服?
  19. 自己整理_银行核心系统相关技术知识
  20. 公司员工生日活动策划方案PPT模板

热门文章

  1. 一百块组装可玩LOL的电脑
  2. 【树形DP】保镖排队
  3. Centos7重置密码后采用密钥登陆
  4. 数字电路(2)门电路(一)
  5. bzoj4816: [Sdoi2017]数字表格
  6. 打开office word 2003 时出现了“出现问题需要关闭,是否发送错误报告”
  7. mindmanager2021下载 最新版如何更新
  8. [乡土民间故事_徐苟三传奇]第二回_巧答言长工骂财主
  9. 关于影响力章节的读后感:第二章
  10. 怎样创建和提交谷歌站点地图?