[Pytorch系列-72]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练CycleGAN模型
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122077731
目录
第1章 概述
1.1 代码架构与总体思路
1.2 本章基本思路
1.3 训练方式
第2章 测试步骤
第1步:下载或克隆pytorch-CycleGAN-and-pix2pix所有代码
第2步:切换当前目录
第3步:安装依赖文件(可视化工具)
第4步:下载CycleGAN数据集
第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)熟悉CycleGAN模型训练
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步:下载CycleGAN数据集
(1)下载方式
- Linux 命令行方式
bash ./datasets/download_pix2pix_dataset.sh facades
- Jupter方式
!bash ./datasets/download_pix2pix_dataset.sh facades
- Windows浏览器方式
根据./datasets/download_cyclegan_dataset.sh的内容,获取数据集URL, 通过URL手工下载:
https://people.eecs.berkeley.edu/~taesung_park/CycleGAN/datasets/
备注:
- 这里选择horse2zebra:马到斑马的转换。
(2)数据集的存放路径
- 存放路径:pytorch-CycleGAN-and-pix2pix\datasets
备注:必须同名,不能改名
(3)支持的小型数据集
- summer2winter_yosemite:夏天转换成冬天
- horse2zebra:马到斑马的转换
- apple2orange:苹果到橙子的转换
- facades:建筑物的转换
- mini:min数据的马到斑马的转换
第5步:下载预训练模型
(1)下载方式
- Linux命令行方式
bash ./scripts/download_cyclegan_model horse2zebra
- jupter方式
!bash ./scripts/download_cyclegan_model horse2zebra
- Windows方式
根据download_cyclegan_model.sh脚步的内容,获取链接:
http://efrosgans.eecs.berkeley.edu/cyclegan/pretrained_models/
(2)存放路径
./checkpoints/{xxx}/latest_net_G.pth
xxx为模型名称。
备注:
- 需要把模型的名称,改为latest_net_G.pth,并存放在{xxx}目录中,这与使用预训练模型进行测试是不一样的。
- 官方的预训练模型,只有G网络的参数,没有D网络的参数,因此基本上需要重新训练。
- cyclegan模型分为生成模型与还原模型,体现在不同的方向上。
第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/horse2zebra --name horse2zebra --model cycle_gan --gpu_ids -1 --niter_decay 1 --niter 1 --display_freq 1 --update_html_freq 1 --print_freq 10 --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/horse2zebra --name horse2zebra --model cycle_gan
备注:
在GPU的情况下,使用默认的参数。
(3)重头训练与基于先前的训练结果继续训练
--continue_train :如果设置,则基于先前的训练结果继续训练,如果不设置,则从头开始训练。
第8步:效果展示
(1)控制台打印显示
initialize network with normal
initialize network with normal
initialize network with normal
model [CycleGANModel] was created
---------- Networks initialized -------------
[Network G_A] Total number of parameters : 11.378 M
[Network G_B] Total number of parameters : 11.378 M
[Network D_A] Total number of parameters : 2.765 M
[Network D_B] Total number of parameters : 2.765 M
-----------------------------------------------
Setting up a new session...
create web directory ./checkpoints\horse2zebra\web...
(epoch: 1, iters: 10, time: 7.274, data: 2.156) D_A: 0.963 G_A: 1.139 cycle_A: 5.456 idt_A: 1.779 D_B: 1.407 G_B: 1.843 cycle_B: 3.542 idt_B: 2.495
(epoch: 1, iters: 20, time: 7.448, data: 0.000) D_A: 1.839 G_A: 2.499 cycle_A: 6.618 idt_A: 1.988 D_B: 0.768 G_B: 0.592 cycle_B: 3.989 idt_B: 3.224
......
(2)visdom图形化显示
- loss
- 训练结果
第9步:输出文件
(1)图片文件:
目录:
- pytorch-CycleGAN-and-pix2pix\checkpoints\horse2zebra\web\images
(2)模型文件:
目录:
- pytorch-CycleGAN-and-pix2pix\checkpoints\horse2zebra\
内容:这里有4个模型文件。
- latest_net_D_A.pth
- latest_net_D_B.pth
- latest_net_G_A.pth
- latest_net_G_B.pth
(3)log文件
位置:pytorch-CycleGAN-and-pix2pix\checkpoints\horse2zebra\loss_log
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122077731
[Pytorch系列-72]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练CycleGAN模型相关推荐
- [Pytorch系列-69]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - test.py代码详解
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[Pytorch系列-66]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleG ...
- [Pytorch系列-66]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型测试pix2pix模型
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 利用Tensorflow构建生成对抗网络GAN以生成数据
使用生成对抗网络(GAN)生成数据 本文主要内容 介绍了自动编码器的基本原理 比较了生成模型与自动编码器的区别 描述了GAN模型的网络结构 分析了GAN模型的目标核函数以及训练过程 介绍了利用Goog ...
- Keras实现生成对抗网络(GAN)(生成二维平面上服从某一分布的点)
GAN原理 相关数学推导可参考 李宏毅https://www.bilibili.com/video/av36779967/?p=4 通俗的比喻:制造假钞(G)和警察(D)对抗的过程.假钞制造者制造假钞 ...
- [人工智能-深度学习-61]:生成对抗网络GAN - 图像融合的基本原理与案例
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- pytorch生成对抗网络GAN的基础教学简单实例(附代码数据集)
1.简介 这篇文章主要是介绍了使用pytorch框架构建生成对抗网络GAN来生成虚假图像的原理与简单实例代码.数据集使用的是开源人脸图像数据集img_align_celeba,共1.34G.生成器与判 ...
- [Python图像识别] 四十九.图像生成之什么是生成对抗网络GAN?基础原理和代码普及
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- ECCV2022 | 生成对抗网络GAN论文汇总(图像转换-图像编辑-图像修复-少样本生成-3D等)...
图像转换/图像可控编辑 视频生成 少样本生成 图像外修复/结合transformer GAN改进 新数据集 图像增强 3D 图像来源归属分析 一.图像转换/图像可控编辑 1.VecGAN: Image ...
- 【CV秋季划】生成对抗网络GAN有哪些研究和应用,如何循序渐进地学习好(2022年言有三一对一辅导)?...
GAN自从被提出来后,技术发展就非常迅猛,已经被落地于众多的方向,其应用涉及图像与视频生成,数据仿真与增强,各种各样的图像风格化任务,人脸与人体图像编辑,图像质量提升. 那我们究竟如何去长期学好相关的 ...
最新文章
- RFC 协议下载方法
- 删除不同粒度的事实表记录中重复的度量值数据的SQL语句
- 中国节能减排行业十四五运行现状及建设应用价值分析报告2021-2027年
- SSM中jsp向后台Controller传值中文乱码的奇葩解决!!!
- 用StringBuilder 或StringBuffer: 把字符串“ABCDE”,转变成字符串“A,B,C,D” (注意,最后一个E是需要删除的)
- jms message组成和jsm selector详解(二)
- php临时目录没有文件夹里,PHP上传 找不到临时文件夹的解决方法
- android获取当前显示的view,Android中ViewPager获取当前显示的Fragment
- java sharepoint_java调用sharepoint webservice
- php 图形库 锯齿,PHP imageantialias – 是否使用抗锯齿(antialias)功能 | 菜鸟教程...
- 正版win8/win8.1系统激活密钥(key)备份还原操作步骤
- win7计算机睡眠快捷键,Win7系统在桌面创建睡眠模式快捷键的方法
- CAD的DXF解析中LWPOLYLINE多线段凸度的相关概念和弧度转换
- Unity适配iphone刘海屏
- 澳式滋味一页俱全开启你的味蕾之旅
- AutoCAD.Net二次开发 致命错误 “unhandled access violation reading xxx...”的处理经验
- 记一次加湿器购买经历
- IT碰碰车第四期:中国式创业因李开复而不同?
- 计算机主机面板上的reset,一但中了IE窗口炸弹马上按下主机面板上的Reset键,重起计算机是对的吗...
- iview 表单验证问题 Select 已经选择 还是弹验证提示
热门文章
- vim安装指南(for Ubuntu and Windows)(配置C/C++和Python开发环境)
- 中标麒麟、linux系统-Sikuli安装操作手册
- MySQL如何快速恢复单表(物理方式)
- 【dbt】配置表注释、字段注释
- 解析EIT遇到的问题
- 通过QGIS下载x/y/z格式的瓦片
- UEFI模式下安装Centos 7
- 网络爬虫-今日头条_signature参数逆向(第一弹)
- 《营在微博:企业微博营销实战宝典(全彩精印)》图书信息
- Eclipse:出现The selection cannot be launched,and there are no recent launches怎么解决