当前位置: 首页 > news >正文

cycle_gan使用教程

 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就可以了

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的就是我们要的生成的图片。

相关文章:

  • 学校网站建设规划书/上海推广外包
  • 动易网站模板/sem竞价培训班
  • 青岛城乡建设委员会网站/湖北网络推广有限公司
  • 打鱼跟电子游戏网站怎么做/google官方下载安装
  • 上海市建设安装协会网站/软文代发布
  • 公司门户网站/自媒体培训学校
  • CV【3】:drop_out drop_path
  • [标准库]STM32F103R8T6 标准库配置RCC时钟和超频
  • Golang -- openwechat发送消息、自动回复
  • 《MySQL高级篇》十一、事务基础知识
  • 跟我学c++高级篇——模板元编程之四Wrapper
  • 业务逻辑漏洞
  • Open3D 点云最小二乘法拟合空间直线(Python版本)
  • 2023 年 10 大最佳 GIS 软件
  • 领域适应(Domain Adaptation)概念与tensorflow2简单实现
  • vite中如何更优雅的使用css
  • C# 目录
  • 【算法基础】1.5 前缀和与差分