cycle_gan使用教程

news2024/10/6 22:19:15

 junyanz/pytorch-CycleGAN-and-pix2pix: Image-to-Image Translation in PyTorch (github.com)

如果是用cycle_gan

数据集

/数据集文件夹名,下面四个子文件名

testA

testB

trainA

trainB

trainA是A风格图片,trainB是B风格图片。

训练参数

test
dataroot--filepath测试数据的文件夹,放在名称为testA或者testB的文件夹中(子文件夹为trainA,trainB,testA,testB)
nameflower项目名称,就是给自己的项目取个名字,用于代码来辨认,和train的名称保持一致。
num_test500测试多少张图像。
checkpoints_dir./checkpoints/保存模型参数的路径。默认 ./checkpoints
results_dir./results/保存结果的文件夹,默认是./results/
train
datarootfilepath训练数据的文件夹。子文件夹为trainA,trainB,testA,testB
nameflower项目名称,就是给自己的项目取个名字,用于代码来辨认。默认flower
n_epochs100固定学习率的epoch个数。默认100。
n_epochs_decay100学习速率线性衰减到零的epoch个数,这个和上面的加起来是总的训练轮数。默认100。
lr_policylinear学习率的衰减模式。用于调整学习率的变化。[linear | step | plateau | cosine]线性衰减, 固定步长衰减,plateau,余弦衰减四选一,默认第一个
continue_trainFALSETrue/False 表示继续训练,当训练中断之后想要继续训练,把这个值调为True。
epoch_count1从第几个epoch开始训练,如果继续训练是True,如果训练到第40个epoch终端了,就把这个值设为40.默认1。
checkpoints_dir./checkpoints/保存模型参数的路径。默认 ./checkpoints
modelcycle_gan如果是cycle_gan方法,就选cyclegan,此外还有pix2pix,colorization也可以训练。[cycle_gan | pix2pix | test | colorization] 选一个,默认第一个
netGunet_256生成器的方式。有[resnet_9blocks | resnet_6blocks | unet_256 | unet_128] 种,不同生成器效果不同。四选一,默认unet_256
batch_size5每个batch训练的个数,如果电脑配置不够,就减少这个值可以减少内存
num_threads2用于加载数据的线程,减少这个值可以减少内存
preprocessresize_and_crop[resize_and_crop | crop | scale_width | scale_width_and_crop | none]
directionAtoB[AtoB | BtoA], AtoB,从A生成B,BtoA,从B生成A

训练指令

训练

python train.py --dataroot E:\docs\flower --name flower --model cycle_gan --batch_size 5 --netG unet_256 --num_threads 2 --n_epochs 200 --display_id 0

--epoch_count 52 --continue_train 可选

测试

python test.py --dataroot E:\docs\flower\testA --name flower --model test --no_dropout --num_test 504 --netG unet_256

训练后

训练完之后,将训练中保存的checkpoints的其中一个后缀为XX_net_G_A.pth改为latest_net_G.pth供test文件使用。G_A就是A 到B的转换,G_B就是B到A的转换。

如果要用pix2pix

训练集先分为(A,B)   A->(train,val) B->(train,val)

A文件下分 train,val两个文件夹

B文件下分 train,val两个文件夹

要用pix2pix 先combine A and B 

python ./datasets/conbine_A_and_B.py --后面加上相应的参数

train时把--model cycle_gan 改为--model pix2pix就可以了

python test.py --dataroot F:\data\flower\A\val --name flower --model test --no_dropout --num_test 504 --netG unet_256 --norm batch --num_test 704 --preprocess none

tips


训练的时候可以用

 --preprocess crop 和 --crop_size 256把图像转换为256X256

测试的时候用

--preprocess none 这样就不会做改变


假设处理360x256图像。在训练过程中,可以指定--preprocess crop和--crop_size 256。这将允许的模型在训练期间在随机裁剪的256x256图像上进行训练。在测试期间,可以用--preprocess none。将模型应用于360x256图像,


对于每种生成器体系结构,图像大小都有实际限制。对于unet256,它只支持宽度和高度能被256整除的图像。对于unet128,宽度和高度必须能被128整除。对于resnet_6blocks和resnet_9blocks,宽度和高度需要能被4整除。

train结果

每5个epoch保存一次模型,保存了训练过程中全程的模型。 G_A: 表示从A生成B的模型 G_B: 表示从B生成A的模型

latest_net: 表示最近一次的模型节点。 loss_log.txt: 记录了损失的大小。可以根据这个来看训练的怎么样。 test_opt.txt train_opt.txt 记录了训练和测试时的参数。

点击web->index.html 可以看到训练过程中的图像。

test结果

点击results->工程名->test_latest->index.html. 可以看到test的对比图。 点击results->工程名->test_latest->images 后缀为fake的就是我们要的生成的图片。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168390.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CCF BDCI | 算能赛题决赛选手说明论文-04

基于TPU平台实现人群密度估计 队名:innovation 陈照照 数据科学与大数据技术20级 台州学院 中国-瑞安 479253198qq.com董昊数据科学与大数据技术20级 台州学院 中国-杭州 donghaowifi163.com陈晓聪数据科学与大数据技术20级 台州学院 中国-宁波 2637491…

Golang -- openwechat微信发送消息、自动回复

开篇 马上就要到农历新年了,不妨写一段代码准时为好友们送上祝福。 该 Demo 使用开源项目 openwechat ,实现获取好友列表、为好友发送消息、图片或文件,接收来自好友或群组的消息并设置自动回复等功能。 openwechat Github地址 openwechat 文…

管道(匿名,有名)

文章目录Linux 进程间通信的方式管道匿名管道有名管道Linux 进程间通信的方式 管道 管道特点 管道其实是一个在内核内存中维护的缓冲器,这个缓冲器的存储能力是有限的,不同的操作系统大小不一定相同管道拥有文件的特质:读操作、写操作 匿名管…

线扫相机DALSA-变行高拍照

CamExpert在线阵模式中默认的Buffer设置是Fixed Length。在这种设置下,在一帧采集结束前所接收到的新的帧触发信号都会被忽略。在有的应用中,需要新一帧的外触发信号能够中断当前帧的采集,开始新的一帧。这需要将Buffer设为Variable Length。…

【云原生】k8s之HPA,命名空间资源限制

内容预知 1.HPA的相关知识 2.HPA的部署运用 2.1 进行HPA的部署设置 2.2 HPA伸缩的测试演示 (1)创建一个用于测试的pod资源 (2)创建HPA控制器,进行资源的限制,伸缩管理 (3)进入其中一个pod容器仲&#xf…

Redhat OpenStack使用命令行发放云主机

OpenStack中各大组件的作用Glance:负责管理镜像(镜像的上传、删除、下载)Swift:提供镜像存储的空间Nova:负责配额的修改、启动云主机(实例)、创建密钥对、绑定弹性IP等Keystone:提供…

jQuery(二):属性、元素、尺寸位置操作、事件

jQuery属性操作内容文本值元素操作尺寸、位置操作事件注册事件处理事件对象拷贝对象属性操作 1.获取固有属性语法 prop(‘‘属性’’) 固有属性就是html自带的,例如a元素里面的 href ,input 元素里面的 type。 2.设置固有属性语法 prop(‘‘属性’’, …

Python NumPy 搜索 数组

前言NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 搜索 数组…

Linux小黑板(8)管道

"让我们,笑吧"一、什么是通信?管道是属于进程间通信的一个实现方式。再讲管道之前呢,我们先来说说什么叫做进程间通信。我们日常生活中,给自己的家人、朋友给一个call,或者弹一条微信、QQ等等,从而让人家能够知道我们想…

Databend 开源周报第 76 期

英文版移步:https://databend.rs/blog/2023-01-11-databend-weekly Databend 是一款强大的云数仓。专为弹性和高效设计。自由且开源。即刻体验云服务:https://app.databend.com 。 What’s New 探索 Databend 本周新进展,遇到更贴近你心意的…

vue 中由浅拷贝引发问题的一些场景

在工作的过程中踩了很多的由浅拷贝导致的坑,今天总结在这里,希望对大家有所帮助 1. 组件中直接抛出一个引用类型变量 🌰举个例子 (ps: 以下代码为伪代码,主要展示逻辑用) 子组件(uploadImg&a…

线 程 同 步、线程的死锁问题

线程同步: 模拟售票程序出现问题:当多个线程同时访问共享数据时,产生无序、重复、超额售票等多线程安全问题 解决:将多个线程需要访问的共享数据,包装起来视为一个整体,确保一次只有一个线程执行流访问共享…

春节福利丨神策数据 2022 年数字化营销资料打包全送

2022 年,神策数据出品多份行业研究报告,覆盖银行、证券、零售、教育、电商、融合媒体等多个行业,帮助更多企业通过多视角洞见紧握数字化营销的方向和趋势,用方法论结合落地实践驱动企业数字化经营。01B2B 电商数字化运营聚焦四类 …

【自学Python】Python查找字符串位置

Python查找字符串位置 大纲 Python查找字符串位置教程 在开发过程中,很多时候我们有在一个 字符串 中查找另一个字符串位置的需求,在 Python 中,在一个字符串中查找另一个字符串的位置我们使用 index() 函数。 index() 函数的功能与 find(…

力扣(78.90)补9.22

78.子集 感觉不太难&#xff0c;但是就是不会写。感觉回溯里有很多细节问题。 class Solution { private: vector<vector<int>> res; vector<int> num; void back(vector<int>& nums,int index,int end){ res.push_back(num); …

【JavaEE初阶】第三节.多线程基础篇

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、认识线程 二、多线程程序 2.1 第一个Java多线程程序 2.2 怎么样观察线程的详细情况 2.3 sleep方法 2.4 run 和 start 方法的区别是什么 三、创…

在springboot中配置热部署

今天什么节日也不是&#xff0c;那就祝大家今天快乐。 热部署 所谓热部署&#xff0c;就是在应用正在运行的时候升级软件&#xff0c;却不需要重新启动应用。对于Java应用程序来说&#xff0c;热部署就是在运行时更新Java类文件。在以往&#xff0c;我们对java代码进行修改之后…

【HBU】大一下期末重点

物理简答题一、牛顿第二定律&#xff08;Fdp/dt &#xff09;&#xff1a;1. 飞机怕小鸟:Fdp/dt 力与作用时间的乘积等于物体动量的变化。由于小鸟与飞机相对速度很大&#xff0c;作用时间很短,产生的作用力很大&#xff0c;当小鸟与飞机向撞&#xff0c;效果与同质量炮弹撞飞机…

正则表达式入门及常用正则表达式

常用正则表达式 1 正则表达式的基础概念 1.1 预定义字符 . 表示任何字符&#xff08;与行结束符可能匹配也可能不匹配&#xff09; \d 数字&#xff1a;[0-9] \D 非数字字符&#xff1a;[^0-9] \s 空白字符&#xff1a;[\t\n\xoB\f\r] \S 非空白字符&#xff1a;[^\s] \w 单…

k8s的YAML部署rocketmq记录

说明 测试环境是k8s集群&#xff0c;在上边部署一套单节点的rocketmq nameserver部署 Service和StatefulSet脚本如下 apiVersion: v1 kind: Service metadata:labels:app: rocketmqnamesrvname: rocketmqnamesrv spec:type: ClusterIPports:- port: 9876targetPort: 9876na…