超分辨率重建——SESR网络训练并推理测试(详细图文教程)

news2024/12/23 9:44:33

最近学了一个超轻量化的超分辨率重建网络SESR,效果还不错。
在这里插入图片描述

目录

  • 一、 源码包
  • 二、 数据集的准备
    • 2.1 官网下载
    • 2.2 网盘下载
  • 三、 训练环境配置
  • 四、训练
    • 4.1 修改配置参数
    • 4.2 导入数据集
    • 4.3 2倍超分网络训练
      • 4.3.1 训练SESR-M5网络
      • 4.3.2 训练SESR-M5网络
      • 4.3.3 训练SESR-M11网络
      • 4.4.4 训练SESR-XL网络
    • 4.4 2倍超分网络模型
    • 4.5 修改模型保存格式
    • 4.6 4倍超分网络训练
      • 4.6.1 训练SESR-M5网络
      • 4.6.2 训练SESR-M5网络
      • 4.6.3 训练SESR-M11网络
      • 4.6.4 训练SESR-XL网络
    • 4.7 4倍超分网络模型
  • 五、量化训练
    • 5.1 量化训练模型
  • 六、模型推理测试
  • 七、超分效果
  • 八、总结

一、 源码包

SESR官网的地址为:官网

我自己调整过的源码包地址为:SESR完整包 提取码:b80m

论文地址:论文

源码包推荐使用我给的,我注释过很多地方,看起来不吃力,且我自己添加了推理测试脚本。

下载好源码包解压后的样子如下:

在这里插入图片描述

二、 数据集的准备

获取数据集可以有两种方法:

2.1 官网下载

直接运行源码包中的脚本文件train.py,会自动先下载div2k数据集,但是下载的非常慢,高分辨率数据集有3G多,容易下蹦了。默认会下载到系统C盘下,具体路径为:

C:\Users\Administrator\tensorflow_datasets\downloads,每次下载失败后再次运行又会重新生成序列码并重新下载,很麻烦。

如下:
在这里插入图片描述

2.2 网盘下载

我提供了一个我下载好并整理好的数据集,文件存放对应关系我都整理好了,学者可以直接下载导入使用,下载链接为:网盘下载 ,提取码为:32d4

三、 训练环境配置

该网络结构是在TensorFlow框架下运行的TensorFlow版本是2.3,还有一个包的版本是tensorflow_datasets==4.1,Pyhton3.6版本,额。。。。。。。。。。。。。。。。。。

踩了很多坑,最后我自己调通的版本是TensorFlow-gpu2.9,Python 3.7版本,tensorflow_datasets4.8.2,如下:

在这里插入图片描述

安装好TensorFlow-GPU后先测试一下能不能正常调用GPU,测试方法参考:添加链接描述

四、训练

4.1 修改配置参数

打开train.py文件,里面有些配置参数根据自己电脑情况修改:

在这里插入图片描述

train.py脚本中对应上图修改的地方如下:

在这里插入图片描述

4.2 导入数据集

下载好我提供的数据集后,解压好讲整个tensorflow_datasets文件夹放到data文件夹中,并将tensorflow_datasets文件夹所在路径赋值给变量data_dir,代码中具体的修改地方如下:

在这里插入图片描述

4.3 2倍超分网络训练

根据自己需求选择要训练深度:

4.3.1 训练SESR-M5网络

其中m = 5,f = 16,feature_size = 256,具有折叠线性块:

python train.py

4.3.2 训练SESR-M5网络

m = 5,f = 16,feature_size = 256,扩展线性块:

python train.py --linear_block_type expanded

4.3.3 训练SESR-M11网络

其中m = 11,f = 16,feature_size = 64,具有折叠线性块:

python train.py --m 11 --feature_size 64

4.4.4 训练SESR-XL网络

其中m = 11,f = 16,feature_size = 64,具有折叠线性块:

python train.py --m 11 --int_features 32 --feature_size 64

4.4 2倍超分网络模型

通过上面步骤训练好后会在logs文件中自动保存权重文件和模型,我自己训练好的模型权重文件都打包在源码包了,学者可以直接使用,如下:

在这里插入图片描述
上面各个文件代表内容为:

.pb:表示protocol buffers,是模型结构和参数的二进制序列化文件。存储了模型的网络结构,变量,权重等信息。是模型persist的主要文件。

.data-00000-of-00001:存储了模型变量的取值,即模型权重参数的值。模型训练完成后保存的权重。

.index:索引文件,存放了参数tensor的meta信息,如tensor名称、维度等。用于定位data文件中的tensor数据。

checkpoints文件:存储模型训练过程中的参数,用于恢复训练。

4.5 修改模型保存格式

上面是默认的保存方式,学长如果需要其他格式的自己修改保存方法,具体修改地方如下:

在这里插入图片描述

4.6 4倍超分网络训练

4倍超分网络得在2倍超分模型基础上训练才行,网络深度自己选择:

4.6.1 训练SESR-M5网络

其中m = 5,f = 16,feature_size = 256,具有折叠线性块:

python train.py --scale 4

4.6.2 训练SESR-M5网络

m = 5,f = 16,feature_size = 256,扩展线性块:

python train.py --linear_block_type expanded --scale 4

4.6.3 训练SESR-M11网络

其中m = 11,f = 16,feature_size = 64,具有折叠线性块:

python train.py --m 11 --feature_size 64 --scale 4

4.6.4 训练SESR-XL网络

其中m = 11,f = 16,feature_size = 64,具有折叠线性块:

python train.py --m 11 --int_features 32 --feature_size 64 --scale 4

4.7 4倍超分网络模型

训练好后,模型会自动保存在logs文件中,如下:

在这里插入图片描述

五、量化训练

运行以下命令,在训练时对网络进行调试,并生成TFLITE(用于x2 SISR、SESR-M5网络):

python train.py --quant_W --quant_A --gen_tflite

5.1 量化训练模型

训练好后自动保存在logs/x2_models文件下,如下:

在这里插入图片描述

六、模型推理测试

推理脚本是我自己写的,具体使用如下,根据需求自行选择:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

七、超分效果

在这里插入图片描述
在这里插入图片描述

八、总结

以上就是超分辨率重建——SESR网络训练并推理测试的详细图文教程,总结不易,给个三连多多支持,谢谢!欢迎留言讨论。

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

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

相关文章

Kitex踩坑 [Error] KITEX: processing request error,i/o timeout

报错问题 2023/010/28 17:20:10.250768 default_server_handler.go:234: [Error] KITEX: processing request error, remoteService, remoteAddr127.0.0.1:65425, errordefault codec read failed: read tcp 127.0.0.1:8888->127.0.0.1:65425: i/o timeout 分析原因 Hert…

【刷题笔记10.28】Leetcode:使括号有效的最少添加

Leetcode:使括号有效的最少添加 上代码 方法一:使用Deque 双向队列 /*** 方法一:使用Deque 双向队列* param s* return*/public int minAddToMakeValid(String s) {//1、将括号字符串转换为char[] 字符数组char[] data s.toCharArray();//2…

SDK 资源

目录 资源的使用 带资源的.exe文件的编译方式 向窗口发送消息 菜单 加载菜单 菜单消息 图标 光标 快捷键 字符串 资源的使用 在VS2019中,点击视图下的其他窗口,资源视图,就可以看到本项目的所有资源 鼠标右键添加-资源&#xff0c…

数据特征工程 | 主成分分析(Python)

特征抽取(feature extraction)和特征选择(feature selection)不一样,特征抽取是从原特征集中推导出有用的信息构成新的特征集。特征选择是从原特征集中选择一部分子集作为训练特征。 特征抽取将数据集从一个特征空间投影到了一个更低维度的特征空间。 主成分分析(princ…

C++设计模式_16_Adapter 适配器

Adapter 适配器也是属于“接口隔离”模式,也是间接思想在某一个层面的应用。 文章目录 1. 动机( Motivation)2. 模式定义3. 结构 (Structure)4. Adapter 适配器的代码实现5. 要点总结6. 其他参考 1. 动机( Motivation) 在软件系统中,由于应用环境的变化…

python:使用Scikit-image对遥感影像进行傅里叶变换特征提取(fourier)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-Image来进行傅里叶变换特征提取(fourier),并且提供一个示例代码,演示了如何在单波段遥感图像上应用这些方法。 傅里叶变换特征提取是一种数学工具,用于将图像中的细节、纹理和边缘信息以不同频率的方式呈现…

[SpringCloud] Nacos 简介

目录 一、Nacos,启动! 1、安装 Nacos 2、运行 Nacos 3、Nacos 服务注册 二、Nacos 服务多级存储模型 1、服务跨集群分配 2、NacosRule 负载均衡(优先本地) 3、服务实例的权重设置 4、环境隔离 三、Nacos 注册中心细节分…

私有云:【2】AD域的安装

私有云:【2】AD域的安装 1、使用vmwork创建虚拟机2、启动配置虚拟机3、安装域服务4、配置域服务器 1、使用vmwork创建虚拟机 新建虚拟机 稍后安装操作系统 选择win2012,如下图 设置名称及路径 分配硬盘大小,默认60G即可 镜像选择win2012的is…

【数据结构】数组和字符串(九):稀疏矩阵的链接存储:十字链表的插入、查找、删除操作

文章目录 4.2.1 矩阵的数组表示4.2.2 特殊矩阵的压缩存储a. 对角矩阵的压缩存储b~c. 三角、对称矩阵的压缩存储d. 稀疏矩阵的压缩存储——三元组表4.2.3三元组表的转置、加法、乘法、操作4.2.4十字链表0. 十字链表的创建、遍历打印、销毁1. 插入2. 查找3. 删除4. 主函数5. 代码…

C++学习day--22 宏和结构体

1、宏 1.1 为什么要使用宏 1、提高代码的可读性和可维护性 2、避免函数调用,提高程序效率 1.2 什么是宏 它是一种预处理器指令,在预编译阶段将宏名替换为后面的替换体 。 1.3 宏的定义 由三部分组成: #define WIDTH 960 三个部分分别是&…

Python 作用域:局部作用域、全局作用域和使用 global 关键字

变量只在创建它的区域内可用。这被称为作用域。 局部作用域 在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。 示例:在函数内部创建的变量在该函数内部可用: def myfunc():x 300print(x)myfunc()函数内部的函数 …

C++——类和对象(中)(2)尚未完结

拷贝构造 概念 在现实生活中,可能存在一个与你一样的自己,我们称其为双胞胎。 那在创建对象时,可否创建一个与已存在对象一某一样的新对象呢? 拷贝构造函数: 只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰)&…

模块化编程

1、函数单独写在一个文件中.c&#xff0c;然后声明也写在一个文件中.h,在mian.c中引用 2、安装目录下面的文件夹用<>,在自己文件夹目录下就是"" 3、创建自己的&#xff08;先把函数放在c文件&#xff0c;再创建头h文件&#xff09;

ruoyi-plus创建模块、自动生成代码

ruoyi-plus自动生成代码 1、创建模块 复制其他部分的resouce过来 修改yml文件 2 修改Nacos 2.1 修改数据库文件 复制其他数据库的链接 &#xff0c;改为自己新建的数据库名字 修改为自己要生成的数据库 新建数据库的yaml文件 3 重启docker的ruoyi-gen服务 docker re…

数据结构【DS】B树

m阶B树的核心特性: Q&#xff1a;根节点的子树数范围是多少&#xff1f;关键字数的范围是多少&#xff1f; A&#xff1a;根节点的子树数∈[2, m],关键字数∈[1, m-1]。 Q&#xff1a;其他结点的子树数范围是多少&#xff1f;关键字数范围是多少&#xff1f; Q&#xff1a;对任…

SSD1306 oled显示屏的驱动SPI接口

有IIC接口 和SPI接口 还有8080,6080接口等 arduino SPI接口 直接使用u8g2库实现 //U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock*/ 13, /* data*/ 11, /* cs*/ 10, /* dc*/ 9, /* reset*/ 8); asrpro(SPI接口按下方修改&#xff0c;IIC接口官方有驱动&…

环形链表(C++解法)

题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#…

Vmware下的虚拟机NAT连接后仍然木有网络

问题描述 出现在主机能ping通&#xff0c;互联网ping不通的情况。 废话 假设已经设置了网络配置文件IPADDR。 那么&#xff0c;NAT后可以访问互联网的前提是&#xff1a;这个IPADDR的网段在Vmware软件设置的网段内。 解决 在Vmware虚拟网络设置选项卡中&#xff0c;进NAT配…

10000字!图解机器学习特征工程

文章目录 引言特征工程1.特征类型1.1 结构化 vs 非结构化数据1.2 定量 vs 定性数据 2.数据清洗2.1 数据对齐2.2 缺失值处理 原文链接&#xff1a;https://www.showmeai.tech/article-detail/208 作者&#xff1a;showmeAI 引言 上图为大家熟悉的机器学习建模流程图&#xff0c;…

TYWZOJ 礼品配对包装 题解

文章目录 题目描述输入格式输出格式样例样例输入样例输出 数据范围与提示思路与部分实现完整代码 题目描述 爱与愁大神在这家目标店买了 2 x 2x 2x 份礼物&#xff0c;打算分给班级同学。其中有 x x x 份黑礼品&#xff0c; x x x 份白礼品&#xff0c; 2 x 2 2x2 2x2 个空…