超分辨率重建——SAN训练自己数据集及推理测试(详细图文教程)

本文主要是介绍超分辨率重建——SAN训练自己数据集及推理测试(详细图文教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、源码包下载
  • 二、数据集准备
  • 三、预训练权重文件
  • 四、训练环境
  • 五、训练
    • 5.1 超参数修改
    • 5.2 训练模型
      • 5.2.1 命令方式训练
      • 5.2.2 Configuration配置参数方式训练
    • 5.3 模型保存
  • 六、推理测试
    • 6.1 超参数修改
    • 6.2 测试
      • 6.2.1 命令方式测试
      • 6.2.2 Configuration配置参数方式测试
    • 6.3 测试结果
    • 6.4 推理速度
  • 七、总结

一、源码包下载

源码包有官网提供的和我自己修改过代码提供的,建议学者直接下载我提供的源码包使用,可以少走很多弯路。

官网源码包下载链接:SAN官网

我提供的源码包:网盘源码包,提取码:0g99

论文地址:论文

我提供的源码包下载并解压后的样子如下:

在这里插入图片描述

二、数据集准备

在我提供的源码包中有部分训练集和测试集,位于根目录下的data_data文件夹中。DIV2K训练集官网提供的有900张图像,我提供的源码包中有100张,学者可以自己去官网下载完整版DIV2K数据集,我这里提供主要是想告诉学者训练集目录结构关系,如下:

在这里插入图片描述

三、预训练权重文件

预训练权重文件子在源码包中已经提供,存放位置如下,分别有超分2倍,3倍,4倍的预训练权重模型。

在这里插入图片描述

四、训练环境

测代码框架必须在低版本的Pytorch中才能运行,安装低版本的Pytorch如果遇到问题,参考我另外一篇博文:_update_worker_pids问题

我自己在Windows环境上训练并测试的,运行环境如下:

在这里插入图片描述

五、训练

5.1 超参数修改

该代码框架所有的路径都必须用绝对路径才能正确读取数据,不信的倔驴试试!

在这里插入图片描述

关于训练的所有超参数修改都在TrainCode文件夹下的option.py文件中,学者自行根据自己情况修改其它超参数。

5.2 训练模型

5.2.1 命令方式训练

先在终端通过下面命令进入到训练脚本路径下:

cd TrainCode

在输入下面命令进行训练:

ython main.py --model san --save save_name --scale 2 --n_resgroups 20 --n_resblocks 10 --n_feats 64 --reset --chop --save_results --patch_size 20 --cpu --batch_size 8

5.2.2 Configuration配置参数方式训练

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上面两种填写配置参数的方式都可以训练,学者根据个人喜好选择。

配置参数填写好后就可以直接训练了,我自己是在CPU上训练的,因为Pytorch版本太低,牵连到CUDA和CuDNN版本不兼容的问题,要重新配置环境等问题,我懒得折腾了,就直接用CPU训练测试了,学者根据自己情况使用GPU或者CPU,如果要用GPU,把我提供的源码包main.py脚本中的代码注释了,如下:

在这里插入图片描述

5.3 模型保存

运行上面命令后,等待一段时间就开始训练了,如下:

在这里插入图片描述

训练过程的模型权重会自动保存到根目录下的experiment文件夹中,如下:

在这里插入图片描述

六、推理测试

6.1 超参数修改

测试脚本有一个专门对应的配置文件,名字也是option.py,参数很多,自行根据情况修改,如下:

在这里插入图片描述

下面是修改测试结果的保存路径,这部分代码是我自己添加的,官网源码包中没有保存测试结果的脚本,如下:

在这里插入图片描述

6.2 测试

6.2.1 命令方式测试

在终端输入以下命令进入到测试脚本的路径下:

cd TestCode/code

再输入以下命令后回车测试:

python main.py --model san --data_test MyImage --save save_name --scale 4 --n_resgroups 20 --n_resblocks 10 --n_feats 64 --reset --chop --save_results --test_only --testpath F:/Code/Python/SAN/SAN/Test_Images/INF --testset Set5 --pre_train F:/Code/Python/SAN/SAN/experiment/save_name/model/model_best.pt --cpu

上面命令中可以修改超分倍数:–scale参数;测试集路径:–testpath;训练好的模型权重路径:–pre_train;其它参数自行修改

6.2.2 Configuration配置参数方式测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6.3 测试结果

运行过程如下:

在这里插入图片描述

测试保存的结果图像在根目录Result_Images文件夹中,如下:

在这里插入图片描述

6.4 推理速度

我只在CPU上测试了推理速度,图像大小:12090,超分4倍,推理速度:12s/fps。图像大小512512,超分2倍,推理速度:39s/fps。

七、总结

以上就是超分辨率重建——SAN网络训练自己数据集及推理测试的详细图文教程,欢迎留言讨论。

总结不易,多多支持,谢谢!

这篇关于超分辨率重建——SAN训练自己数据集及推理测试(详细图文教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504176

相关文章

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte