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

news2024/12/25 9:00:44

最近学了一个超轻量化的超分辨率网络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 网盘下载

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

三、 训练环境配置

该网络结构是在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/1139230.html

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

相关文章

使用pycharm远程调试

使用pycharm 专业版, 在设置解释器中,具备ssh 解释器功能; 一般在本地无法调试远程端代码,机械性的scp传输文件十分影响工作效率,PyCharm的Pro支持远程Run,Debug,等可视化的功能。 操作系统&…

超声波原理的便携式明渠流量计

便携式明渠流量计是一款便携式的可随带随走的一款仪器,主要是用来和在线明渠流量计做液位和流量比对的一款比对装置。 仪器可自动每两分钟记录一次液位数据,连续记录6次,同时可以累计测量10分钟的流量数据,将其结果与现场在线明渠…

Angular改变组件中样式(两种方法)

项目中遇到修改组件样式的情况,搜了半天资料基本只有vue和react的方法,什么/deep/,v-deep统统不起效,崩溃! 所以这里总结一下Angular的方法。 angular中想引入组件并修改组件内样式,有两种方法。 文章目录 方法1&…

壹牛NFT数字艺术藏品数藏开源无加密

这个版本新增了不少功能,也修复了一些地方。 1.平台新增用户找回密码功能 2.平台新增短信注册(实名制功能) 3.平台新增主图后台添加功能 4.平台修复相关问题,系统高效运行 1、H5端与APP端在新UI完美适配 2、加入宝盒功能&am…

FL Studio21.2最新订阅版本更新升级(详细功能介绍)

好消息!FL Studio 21.2 在 10 月 26 日正式发布啦,它新增了 FL Cloud 在线采样库和 AI 音乐制作功能,还提供音乐分发到 Spotify、Apple Music 等主要音乐平台的服务。此外,还有新的音频分离功能、自定义波形颜色和新的合成器 Kepl…

下一代金融将呈现 7 项激动人心的金融科技创新

金融科技处于现代技术发展的前沿。随着金融科技领域价值超过 1790 亿美元,初创企业和创新者都在寻找金融和银行业的下一个重大事件。 本文讨论了 2024 年的 7 项金融科技创新。 其中一些创新建立在我们在金融行业看到的现有趋势的基础上,而另一些则是完…

学习ftp

文章目录 一、FTP介绍二、两种模式(主动模式和被动模式)三、FTP配置文件详解四、实际场景举例五、黑白名单六、网络限制 一、FTP介绍 1.FTP(File Transfer Protocol)是一种应用广泛且古老的互联网文件传输协议。 2.主要应用于互联…

vue项目中定制化音频展示,wavesurfer.js基本使用

效果图&#xff1a; wavesurfer是一个可定制的音频波形可视化&#xff0c;建立在Audio API和HTML5 Canvas之上。 基本使用&#xff1a; <body><script src"https://unpkg.com/wavesurfer.js"></script><div id"waveform"></di…

VMware ESXi和vCenter和vSphere关系是怎样的?

事实上&#xff0c;我们所说的vSphere并不是一个特定的软件。VMware vSphere是VMware的服务器虚拟化软件套件&#xff0c;它包括了许多软件组件&#xff0c;它们中的每一个都在vSphere环境中执行不同的功能。 VMware vSphere的两个核心组件就是VMware ESXi和VMware vCenter Se…

python接口自动化测试(八)-unittest-生成测试报告

用例的管理问题解决了后&#xff0c;接下来要考虑的就是报告我问题了&#xff0c;这里生成测试报告主要用到 HTMLTestRunner.py 这个模块&#xff0c;下面简单介绍一下如何使用&#xff1a; 一、下载HTMLTestRunner下载&#xff1a; 这个模块不能通过pip安装&#xff0c;只能…

ohos的代码同步以及添加自己的代码

首先我们需要获取到官方的repo工具&#xff0c;命令如下curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo&#xff0c;这里我们就拿到repo工具了&#xff0c;这个repo可以放任意地方&#xff0c;也可以放 /usr/local/bin/repo下&#xff0c;这样可以…

C++ 关键字

bool 取值 true和false&#xff0c;只有二者&#xff0c;C编译器会在赋值时将非0值转换为true&#xff0c;0转换为false ture 代表真值&#xff0c;编译器内部用1来表示 false 代表非真值&#xff0c;编译器内部用0来表示 空间 占用一个字节 多个bool变量定义在一起&a…

Power BI 傻瓜入门 13. 进入仪表板

本章内容包括&#xff1a; 配置仪表板将报表功能集成到仪表板中使用基于AI的功能增强仪表板体验基于仪表板规则定义警报 想象一下&#xff1a;图片和文本的混合体整齐地组织起来&#xff0c;就像一块美丽的画布。它告诉你组织中的一切都在顺利运行&#xff0c;但其中一个视觉…

Linux系统之部署Tale个人博客系统

Linux系统之部署Tale个人博客系统 一、Tale介绍1.1 Tale简介1.2 Tale特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查java版本 四、部署Tale个人博客系统4.1 下载Tale源码4.2 查看Tale源码目录4…

干货 | 深度多元时序模型在携程关键指标预测场景下的探索应用

作者简介 doublering&#xff0c;携程高级算法工程师&#xff0c;关注自然语言处理、LLMs、时序预测等领域。 一、背景 互联网行业中&#xff0c;有许多关键指标直接影响公司未来的规划与决策&#xff0c;比如流量、订单量、销售额等。有效地预测这些关键指标能够辅助公司提前做…

C++类模板再学习

之前已经学习了C类模板&#xff1b;类模板的写法和一般类的写法有很大的差别&#xff1b;不容易熟悉&#xff1b;下面再做一遍&#xff1b; 做一个椭圆类&#xff0c;成员有长轴长度和短轴长度&#xff1b; // ellipse.h: interface for the ellipse class. // //#if !define…

Android开发知识

文章目录 HTTPHTTP到底是什么HTTP的工作方式URL ->HTTP报文List itemHTTP的工作方式请求报文格式&#xff1a;Request响应报文格式&#xff1a;ResponseHTTP的请求方法状态码HeaderHostContent-TypeContent-LengthTransfer: chunked (分块传输编码 ChunkedTransfer Encoding…

双向链表的初始化、插入、删除

双向链表的初始化 双向链表的插入 双向链表的删除 我们可以看看这一题循环双向链表的题目 王道p40 17.设计一个算法用于判断带头结点的循环双链表是否对称&#xff08;c语言代码实现&#xff09;_认真敲代码的小火龙的博客-CSDN博客https://blog.csdn.net/m0_46702681/article…

Shiro整合EhCache

缓存工具EhCache EhCache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。可以和大部分Java项目无缝整合&#xff0c;例如&#xff1a;Hibernate中的缓存就是基于EhCache实现的。EhCache支持内存和磁盘存储&#xff0c;默认存储在内存中&#xff…

netcore webapi action 同时支持 get 和 post 请求

最近在项目开发过程中&#xff0c;有个别接口需要同时支持GET和POST请求&#xff0c;经过一番测试&#xff0c;貌似NetCore只能接收指定的FromBody、FromQuery等参数&#xff0c;经过一番查找后发现文章&#xff1a;为ASP.NET Core实现一个自适应ModelBinder&#xff0c;让Acti…