位置: IT常识 - 正文

SwinIR实战:详细记录SwinIR的训练过程

编辑:rootadmin
SwinIR实战:详细记录SwinIR的训练过程 文章目录SwinIR实战:详细记录SwinIR的训练过程。下载训练代码数据集训练完整的代码:SwinIR实战:详细记录SwinIR的训练过程。

推荐整理分享SwinIR实战:详细记录SwinIR的训练过程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

论文地址:https://arxiv.org/pdf/2108.10257.pdf

预训练模型下载:https://github.com/JingyunLiang/SwinIR/releases

训练代码下载:https://github.com/cszn/KAIR

测试代码:https://github.com/JingyunLiang/SwinIR

论文翻译:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/124434886

测试:https://wanghao.blog.csdn.net/article/details/124517210

在写这边文章之前,我已经翻译了论文,讲解了如何使用SWinIR进行测试?

接下来,我们讲讲如何SwinIR完成训练,有于作者训练了很多任务,我只复现其中的一种任务。

下载训练代码

地址:https://github.com/cszn/KAIR

这是个超分的库,里面包含多个超分的模型,比如SCUNet、VRT、SwinIR、BSRGGAN、USRNet等模型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B5Md9i7H-1651410061139)(https://gitee.com/wanghao1090220084/cloud-image/raw/master/img/face_09_comparison.png)]

下载后解压,训练SwinIR的REANDME.md,路径:./docs/README_SwinIR.md

数据集

训练和测试集可以下载如下。 请将它们分别放在 trainsets 和 testsets 中。

任务训练集测试集classical/lightweight image SRDIV2K (800 training images) or DIV2K +Flickr2K (2650 images)set5 + Set14 + BSD100 + Urban100 + Manga109 download allreal-world image SRSwinIR-M (middle size): DIV2K (800 training images) +Flickr2K (2650 images) + OST (10324 images,sky,water,grass,mountain,building,plant,animal) SwinIR-L (large size): DIV2K + Flickr2K + OST + WED(4744 images) + FFHQ (first 2000 images, face) + Manga109 (manga) + SCUT-CTW1500 (first 100 training images, texts) RealSRSet+5imagescolor/grayscale image denoisingDIV2K (800 training images) + Flickr2K (2650 images) + BSD500 (400 training&testing images) + WED(4744 images)grayscale: Set12 + BSD68 + Urban100 color: CBSD68 + Kodak24 + McMaster + Urban100 download allJPEG compression artifact reductionDIV2K (800 training images) + Flickr2K (2650 images) + BSD500 (400 training&testing images) + WED(4744 images)grayscale: Classic5 +LIVE1 download all

我下载了DIV2K数据集和 Flickr2K数据集,DIV2K大小有7G+,Flickr2K约20G。如果网速不好建议只下载DIV2K。

注:在选用classical任务,做训练时,只能使用DIV2K或者Flickr2K,不能把两种数据集放在一起训练,否则就出现维度对不上的情况,如下图:

暂时没有找到原因。

构建测试集,测试集的路径如下图:

由于表格中的测试集放在google,我不能下载,但是SwinIR的测试代码中有测试集,代码链接:https://github.com/JingyunLiang/SwinIR,下载下来直接复制到testsets文件夹下面。

SwinIR实战:详细记录SwinIR的训练过程

构建训练集,将下载下来的DIV2K解压。将DIV2K_train_HR复制到trainsets文件夹下面,将其改为trainH。

将DIV2K_train_LR_bicubic文件夹的X2文件夹复制到trainsets文件夹下面,然后将其改名为trainL。

到这里,数据集部分就完成了,接下来开始训练。

训练

首先,打开options/swinir/train_swinir_sr_classical.json文件,查看里面的内容。

"task": "swinir_sr_classical_patch48_x2"

训练任务的名字。

"gpu_ids": [0,1]

选择GPU的ID,如果只有一快GPU,改为 [0]。如果有更多的GPU,直接往后面添加即可。

"scale": 2 //2,3,48

放大的倍数,可以设置为2、3、4、8.

"datasets": { "train": { "name": "train_dataset" // just name , "dataset_type": "sr" // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch" | "jpeg" , "dataroot_H": "trainsets/trainH"// path of H training dataset. DIV2K (800 training images) , "dataroot_L": "trainsets/trainL" // path of L training dataset , "H_size": 96 // 96/144|192/384 | 128/192/256/512. LR patch size is set to 48 or 64 when compared with RCAN or RRDB. , "dataloader_shuffle": true , "dataloader_num_workers": 4 , "dataloader_batch_size": 1 // batch size 1 | 16 | 32 | 48 | 64 | 128. Total batch size =4x8=32 in SwinIR } , "test": { "name": "test_dataset" // just name , "dataset_type": "sr" // "dncnn" | "dnpatch" | "fdncnn" | "ffdnet" | "sr" | "srmd" | "dpsr" | "plain" | "plainpatch" | "jpeg" , "dataroot_H": "testsets/Set5/HR" // path of H testing dataset , "dataroot_L": "testsets/Set5/LR_bicubic/X2" // path of L testing dataset }}

上面的参数是对数据集的设置。 “H_size”: 96 ,HR图像的大小,和下面的img_size有对应关系,大小设置为img_size×scale。

“dataloader_num_workers”: 4,CPU的核数设置。

“dataloader_batch_size”: 32 ,设置训练的batch_size。

dataset_type:sr,指的是数据集类型SwinIR。

"netG": { "net_type": "swinir" , "upscale": 2 // 2 | 3 | 4 | 8 , "in_chans": 3 , "img_size": 48 // For fair comparison, LR patch size is set to 48 or 64 when compared with RCAN or RRDB. , "window_size": 8 , "img_range": 1.0 , "depths": [6, 6, 6, 6, 6, 6] , "embed_dim": 180 , "num_heads": [6, 6, 6, 6, 6, 6] , "mlp_ratio": 2 , "upsampler": "pixelshuffle" // "pixelshuffle" | "pixelshuffledirect" | "nearest+conv" | null , "resi_connection": "1conv" // "1conv" | "3conv" , "init_type": "default" }

upscale:2,放大的倍数,和上面的scale参数对应。

img_size:48,这里可以设置两个数值,48和64。和测试的training_patch_size参数对应。

官方提供的指令是基于DDP方式,比较复杂一下,好处是速度快。如下:

# 001 Classical Image SR (middle size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_sr_classical.json --dist True# 002 Lightweight Image SR (small size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_sr_lightweight.json --dist True# 003 Real-World Image SR (middle size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_sr_realworld_psnr.json --dist True# before training gan, put the PSNR-oriented model into superresolution/swinir_sr_realworld_x4_gan/models/python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_sr_realworld_gan.json --dist True# 004 Grayscale Image Deoising (middle size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_denoising_gray.json --dist True# 005 Color Image Deoising (middle size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_denoising_color.json --dist True# 006 JPEG Compression Artifact Reduction (middle size)python -m torch.distributed.launch --nproc_per_node=8 --master_port=1234 main_train_psnr.py --opt options/swinir/train_swinir_car_jpeg.json --dist True

我没有使用上面的方式,而是选择用DP的方式,虽然慢一点,但是简单,更稳定。

在Terminal里面输入:

python main_train_psnr.py --opt options/swinir/train_swinir_sr_classical.json

即可开始训练。

运行结果如下:

等待训练完成后,我们使用测试代码测试。将模型复制到./model_zoo/swinir文件夹下面

输入命令:

python main_test_swinir.py --task classical_sr --scale 2 --training_patch_size 48 --model_path model_zoo/swinir/45000_G.pth --folder_lq testsets/Set5/LR_bicubic/X2

然后在result下面可以看到测试结果。

完整的代码:

https://download.csdn.net/download/hhhhhhhhhhwwwwwwwwww/85258387

本文链接地址:https://www.jiuchutong.com/zhishi/297369.html 转载请保留说明!

上一篇:Vue使用axios用post方式将表单中的数据以json格式提交给后端接收(vue-axios详细介绍)

下一篇:Repvgg详解及其实现(pytorch)(rep p)

  • 网络推广没有你想的那么难!(网络推广没效果怎么让老客户续费)

    网络推广没有你想的那么难!(网络推广没效果怎么让老客户续费)

  • 2022年QQ恩爱榜怎么看(qq恩爱榜为什么设置失败)

    2022年QQ恩爱榜怎么看(qq恩爱榜为什么设置失败)

  • oppo手机怎么让应用一直运行(oppo手机怎么让时间显示在右上方)

    oppo手机怎么让应用一直运行(oppo手机怎么让时间显示在右上方)

  • word怎么看字数有多少(电脑word怎么看字数)

    word怎么看字数有多少(电脑word怎么看字数)

  • 荣耀30s可以自定义语音唤醒词吗(荣耀30s可以自定义铃声吗)

    荣耀30s可以自定义语音唤醒词吗(荣耀30s可以自定义铃声吗)

  • 苹果xr听筒杂音(苹果xr听筒杂音很大)

    苹果xr听筒杂音(苹果xr听筒杂音很大)

  • 智行火车票学生票为啥还是原价(智行火车票学生认证怎么解绑)

    智行火车票学生票为啥还是原价(智行火车票学生认证怎么解绑)

  • 在拼多多买东西怎么不让好友知道(在拼多多买东西怎样投诉店铺)

    在拼多多买东西怎么不让好友知道(在拼多多买东西怎样投诉店铺)

  • 华为畅享6s隐藏功能(华为畅享怎么隐藏图标)

    华为畅享6s隐藏功能(华为畅享怎么隐藏图标)

  • 华为nova7怎么设置返回键(华为nova7怎么设置闹钟铃声)

    华为nova7怎么设置返回键(华为nova7怎么设置闹钟铃声)

  • 照片无法同步是什么意思(无法同步照片怎么办)

    照片无法同步是什么意思(无法同步照片怎么办)

  • 荣耀10乱跳屏的原因(荣耀十手机屏幕老是自己跳)

    荣耀10乱跳屏的原因(荣耀十手机屏幕老是自己跳)

  • 微信群主自己退群了其他人怎么办(微信群主自己退群,群还存在吗)

    微信群主自己退群了其他人怎么办(微信群主自己退群,群还存在吗)

  • 荣耀30和p30区别(华为荣耀30和p30哪个性价比高)

    荣耀30和p30区别(华为荣耀30和p30哪个性价比高)

  • iphonex怎么更换铃声(iphonex怎么更换有拼音的字体吗)

    iphonex怎么更换铃声(iphonex怎么更换有拼音的字体吗)

  • 不属于输出设备有哪些(下列不属于输出设备)

    不属于输出设备有哪些(下列不属于输出设备)

  • 滴滴桔视仪必须安装吗(滴滴要求安装桔视仪不安装不派单)

    滴滴桔视仪必须安装吗(滴滴要求安装桔视仪不安装不派单)

  • ipad一共有几代(ipad一共有几代了)

    ipad一共有几代(ipad一共有几代了)

  • qq卸载了还会显示在线吗(QQ卸载了还会显示在线状态吗)

    qq卸载了还会显示在线吗(QQ卸载了还会显示在线状态吗)

  • 电信20g限速是多少(电信20gb流量限速)

    电信20g限速是多少(电信20gb流量限速)

  • 苹果11处理器是多少核(苹果11处理器是多大的)

    苹果11处理器是多少核(苹果11处理器是多大的)

  • 抖音男女对唱怎么拍(抖音里男女对唱)

    抖音男女对唱怎么拍(抖音里男女对唱)

  • 如何在淘宝上卖自己的产品(如何在淘宝上卖号)

    如何在淘宝上卖自己的产品(如何在淘宝上卖号)

  • 手机蓝牙怎么连接汽车蓝牙放音乐(手机蓝牙怎么连接车载蓝牙放音乐)

    手机蓝牙怎么连接汽车蓝牙放音乐(手机蓝牙怎么连接车载蓝牙放音乐)

  • 抖音长腿特效详细位置(2021抖音视频长腿特效)

    抖音长腿特效详细位置(2021抖音视频长腿特效)

  • 华为mate30pro是不是5g(华为的mate 30 pro)

    华为mate30pro是不是5g(华为的mate 30 pro)

  • 接收传真怎么接(如何接传真)

    接收传真怎么接(如何接传真)

  • 什么是2u微信(微信2有什么用处)

    什么是2u微信(微信2有什么用处)

  • vivo连接车载蓝牙卡顿(vivo连接车载蓝牙播放不了音乐)

    vivo连接车载蓝牙卡顿(vivo连接车载蓝牙播放不了音乐)

  • 专项应付款怎核算?
  • 销售佣金计入什么会计科目
  • 固定资产转让开票金额是净值
  • 企业所得税营业税金及附加包括
  • 电梯折旧费如何分摊
  • 有留抵税额的会计处理
  • 母子公司间的借款现金流计入哪里
  • 劳务报酬2019
  • 一般纳税人提供服务税率
  • 企业所得税哪些不可以税前扣除
  • 营改增后增值税税率的调整
  • 股东可以以知识产权作价出资吗
  • boss直聘收费怎么这么贵
  • 五金配件做什么科目
  • 政府补贴的银行卡注销了会怎么样
  • 什么原因导致血脂高
  • windows快速查询
  • 新版关闭edge地址栏建议
  • 应交税费贷方余额负数表示什么
  • 多系统设置
  • 拍卖获得收入个税
  • 企业自建房需要交哪些税
  • unc方式
  • msmpeng.exe 是什么
  • fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
  • 设备租赁会计科目
  • 以前年度应扣未扣支出
  • 水电费分割单会计分录
  • 金蝶账无忧待遇和金蝶一样吗
  • js异步解决方案
  • gpgpu编程技术
  • 税控盘开具增值税专用发票步骤
  • 赠品视同销售会计分录要如何编制?
  • 网络销售平台优势和劣势
  • 社保清算是怎么回事
  • 生产过程报废和返工产生的成本
  • windows PostgreSQL 9.1 安装详细步骤
  • 供货商少开发票金额如何进行会计处理?
  • 公司用印制度
  • 收到税控系统技术维护费分录
  • 金蝶专业版仓库管理怎么结账
  • powerdesigner生成pdm
  • 跨年增值税专用发票红字发票怎么开
  • 一般计税预缴增值税2%怎么算
  • 长期待摊费用怎么算出来的
  • 收员工伙食费会计分录
  • 安装购买的材料怎么做账
  • 文化建设费税率
  • 内账会计的主要工作
  • 坏账准备是什么凭证
  • 车间报销维修费会计科目
  • 研发支出是什么意思
  • 当月暂估入账跨月怎么算
  • 建筑行业会计怎么样,有前景吗
  • 公司租用员工车辆维修费能报销吗
  • 营改增对财务人员的影响
  • 进项税额抵扣时分录
  • 企业开发是什么专业
  • 收到保险公司赔款
  • 投资性房地产摊销从什么时候开始
  • 企业的管理费用包括
  • 报关单位分为几种类型?其业务范围有何不同?
  • 存货设置的顺序和内容
  • win7登录不了系统界面
  • 如何创建ubuntu安装教程
  • linux安装.sh
  • 系统问题怎么处理
  • centos8 redhat
  • linux网络中断
  • 缺少系统操作怎么办
  • js开发android应用
  • linux命令统计
  • bootstrap 按钮
  • 安卓修改udid
  • python 嵌套
  • android 启动器 设置
  • 税务局开蔬菜普票需要几个点
  • 社保工资申报错了可以重新申请吗
  • 青海税务发票查询
  • 华数tv业务认证账号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设