【项目实现】ResShift:通过残差位移实现图像超分辨率的高效扩散模型(NeurIPS 2023,聚焦)

        基于扩散的图像超分辨率(SR)方法主要受到数百甚至数千个采样步骤要求导致推理速度低的限制。现有的加速度采样技术不可避免地在一定程度上牺牲了性能,导致SR结果过于模糊。为了解决这个问题,我们提出了一种新颖而高效的SR扩散模型,该模型显着减少了扩散步骤的数量,从而消除了推理过程中对后加速的需要及其相关的性能下降。该方法通过移动高分辨率图像和低分辨率图像之间的残差来构建一个马尔可夫链,大大提高了转换效率。此外,还制定了详细的噪声计划,以灵活控制扩散过程中的变速和噪声强度。大量实验表明,即使只有 15 个采样步骤,所提出的方法在合成和真实世界数据集上都获得了优于或至少与当前最先进的方法相当的性能。

论文地址:https://arxiv.org/abs/2307.12348

项目地址:https://github.com/zsyOAOA/ResShift

主机和显卡:【Intel® Xeon(R) CPU E5-2623 v3 @ 3.00GHz × 16】【NVIDIA Corporation GP102 [TITAN Xp] 】

项目效果图:

 

可能遇见的问题:

        AttributeError: module ‘gradio‘ has no attribute ‘outputs‘
        AttributeError: module ‘gradio‘ has no attribute ‘image’
        RuntimeError: CUDA out of memory.

解决办法

         AttributeError: module ‘gradio‘ has no attribute ‘outputs‘
        AttributeError: module ‘gradio‘ has no attribute ‘image’

        这两个问题属于一类 ,安装正确的gradio版本就可以了

pip install gradio==3.50.2
         RuntimeError: CUDA out of memory.

Traceback (most recent call last):
  File "/media/visionx/monica/project/ResShift/inference_resshift.py", line 107, in <module>
    main()
  File "/media/visionx/monica/project/ResShift/inference_resshift.py", line 104, in main
    resshift_sampler.inference(args.in_path, args.out_path, bs=1, noise_repeat=False)
  File "/media/visionx/monica/project/ResShift/sampler.py", line 234, in inference
    im_sr_tensor = _process_per_image(im_lq_tensor)
  File "/media/visionx/monica/project/ResShift/sampler.py", line 186, in _process_per_image
    im_sr_tensor = self.sample_func(
  File "/media/visionx/monica/project/ResShift/sampler.py", line 136, in sample_func
    results = self.base_diffusion.p_sample_loop(
  File "/media/visionx/monica/project/ResShift/models/gaussian_diffusion.py", line 410, in p_sample_loop
    return self.decode_first_stage(final, first_stage_model)
  File "/media/visionx/monica/project/ResShift/models/gaussian_diffusion.py", line 473, in decode_first_stage
    out = first_stage_model.decode(z_sample)
  File "/media/visionx/monica/project/ResShift/ldm/models/autoencoder.py", line 35, in decode
    quant, emb_loss, info = self.quantize(h)
  File "/home/visionx/anaconda3/envs/ResShift/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/media/visionx/monica/project/ResShift/ldm/modules/vqvae/quantize.py", line 281, in forward
    torch.sum(self.embedding.weight**2, dim=1) - 2 * \
RuntimeError: CUDA out of memory. Tried to allocate 4.00 GiB (GPU 0; 11.90 GiB total capacity; 8.35 GiB already allocated; 2.66 GiB free; 8.50 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

       解决办法:
CUDA_VISIBLE_DEVICES=0 python inference_resshift.py -i ./image/1.jpg -o ./result --task realsrx4 --chop_size 512

改为

CUDA_VISIBLE_DEVICES=0 python inference_resshift.py -i ./image/1.jpg -o ./result --task realsrx4 --chop_size 256
        其实就是相当于把batchsize调小点,思想是相通的。 
        另一个解决办法就是放到更大的显卡上,就不再赘述了。 显然我选择了这个,因为我有,哈哈哈哈~

完结撒花

        任何会改变现状的举动,都是需要巨大勇气的

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

天池SQL训练营(四)-集合运算-表的加减法和join等

-天池龙珠计划SQL训练营 4.1表的加减法 4.1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 U…

AWS Ubuntu设置DNS解析(解决resolve.conf被覆盖问题)

众所周知&#xff1a; Ubuntu在域名解析时&#xff0c;最直接使用的是/etc/resolve.conf文件&#xff0c;它是/run/systemd/resolve/resolve.conf的软链接&#xff0c;而对于刚装完的ubuntu系统&#xff0c;该文件的内容如下 ubuntuip-172-31-36-184:/etc$ cat resolv.conf #…

02-Nacos和Eureka的区别与联系

Nacos和Eureka的区别 联系 Nacos和Eureka整体结构类似: 都支持服务注册, 服务拉取, 采用心跳方式对服务提供者做健康监测的功能 区别 Nacos支持服务端主动检测服务提供者状态: 临时实例采用心跳模式,非临时实例采用主动检测模式但对服务器压力比较大(不推荐) 心跳模式: 服务…

华为数通方向HCIP-DataCom H12-831题库(多选题:161-180)

第161题 以下关于IS-IS路由渗透的描述,正确的有哪些项? A、若要配置Level-2区域的路由向Level-1区域渗透,则需要在Level-1设备上配置命令import-routeisis level_-2 into level_-1 B、缺省情况下,Level-2区域无Level-1区域的路由信息,需要通过在Level-1-2设备上配置impor…

PPT插件-好用的插件-插入媒体-大珩助手

批量媒体 包含批量视频、批量音频、批量图片&#xff0c;可实现从光标所在的位置开始&#xff0c;每页插入一个视频、一个音频、一张图片&#xff0c;且图片和视频的尺寸与当前幻灯片尺寸一致 插入文本 包含黑字无底、白字红底、白字黛底、白字绿底、白字蓝底预设一键文本&am…

C++12.5

想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&#xff0c;他会为每种动物表演做简单的介绍。 在这个场景中&#xff0c;我们可以将动物比作是不同的类&#xff0c;而每种动物表演则…

三相不平衡电压的正负序分析

1、什么是正负序&#xff1f; ABC 正序 ACB 负序 2、在abc坐标系下 接着利用矢量的旋转消去其它分量。。。 同理&#xff0c;得到其它的所有正负序的分量abc 3、在α/β坐标系下&#xff0c; 依次算出正负序的α/β来表示的abc 有一点需要特别注意&#xff0c;可以看到…

Java类对象的操作

1.Student.java package Message; public class Student {private String stuName; // 姓名private int money; // 存款余额private String studentID; // 学号private int age; // 年龄private String address; // 地址private String phoneNumber; // 电话号码private String…

同名称的文件如何批量指定到同名称文件夹中保存

在日常工作中相信大家都是会遇到文件或文件名修改名称、或文件批量归类保存等等&#xff0c;相对来文件或文件夹批量重命名会比较好操作&#xff0c;如果遇到按文件名称批量到指定同名称文件夹中保存呢&#xff1f;这可要什么来实现呢&#xff0c;到底能不能实现出来。接下来大…

Go1.21.0 程序启动过程

版本说明 Go 1.21.0操作系统&#xff1a;Windows11 Intel64 结论先行 开发关注版 在 Go 语言中&#xff0c;启动顺序通常如下&#xff1a; 导入包&#xff1a;首先&#xff0c;Go 编译器按照源文件中的 import 语句导入所有需要的包。初始化常量和变量&#xff1a;接着&am…

SpringBoot自定义参数校验注解

为什么要自定义校验注解? 当现有的注解NotEmptyPatternNotNullURl等不能满足业务需求的时候,我们需要手动自定义一个注解 操作步骤 新建一个anno的包 单击右键添加注解 编写state注解 创建validation文件夹 编写校验规则 然后给上面的State注解指定这个校验规则 使用注解…

程序的机器即代码表示

高级语言与机器级代码之间的对应 x86汇编语言指令基础 mov指令 mov目的操作数d,源操作数s destination:目的地 source:来源、发源地 #mov指令功能: 将源操作数s复制到目的操作数d所指的位置 mov eax, ebx #将寄存器ebx的值复制到寄存器eax mov eax, 5 #将立即数5复制到寄存器…

【LeetCode刷题-二叉树】--110.平衡二叉树

110.平衡二叉树 方法一&#xff1a;自顶向下递归 对于当前遍历到的节点&#xff0c;首先计算左右子树的高度&#xff0c;如果左右子树的高度差是否不超过 111&#xff0c;再分别递归地遍历左右子节点&#xff0c;并判断左子树和右子树是否平衡。这是一个自顶向下的递归的过程。…

GoWeb开发框架gin-基础路由使用

文章目录 1.安装并写一个demo2.配置GoLang热加载脚手架3.配合net/http使用完整示例4.返回值4.1String返回值4.2Json返回值4.3struct结构体返回值4.4jsonp返回值4.5XML返回值 5.接收前端传过来的参数5.1get请求传值5.2form表单传值5.3接收结构体5.4路由地址传参 6.完整代码 1.安…

00.仿简道云公式实战-学前须知

简道云介绍&#xff1a;简道云作为一款个性化应用搭建工具&#xff0c;支持用户在线无编程、免费搭建管理应用&#xff0c;如进销存系统&#xff0c;OA系统等常见应用&#xff0c;公式可以帮助用户提高填写表单的效率&#xff0c;将一些数据自动计算出来。了解简道云公式的小伙…

flstudio21.3.2304高级版水果编曲音乐软件

flstudio高级版是一款适用于广泛领域的音频编辑软件。它支持多通道混音器和VST插件&#xff0c;包括数百种乐器和效果插件。它还为您提供了一个乐谱编辑器&#xff0c;需要对不同乐器的节奏进行必要的编辑。Flstudio具有许多内置电子合成声音&#xff0c;可提供更广泛的电子声音…

代码随想录二刷 |二叉树 | 二叉树的右视图

代码随想录二刷 &#xff5c;二叉树 &#xff5c; 二叉树的右视图 题目描述解题思路代码实现 题目描述 199.二叉树的右视图 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例…

推荐4个优秀的 Python 时间序列分析库

时间序列分析在金融和医疗保健等领域至关重要&#xff0c;在这些领域&#xff0c;理解随时间变化的数据模式至关重要。在本文中&#xff0c;我们将介绍四个主要的Python库——statmodels、tslearn、tssearch和tsfresh——每个库都针对时间序列分析的不同方面进行了定制。这些库…

【unity实战】一个通用的FPS枪支不同武器射击控制脚本

文章目录 前言模型素材文章用到的粒子火光特效射击效果换弹瞄准开枪抖动效果设置显示文本最终代码不同武器射击效果1. 手枪2. 机枪3. 狙击枪4. 霰弹枪5. 加特林 其他感谢完结 前言 实现FPS枪支不同武器效果&#xff0c;比如手枪&#xff0c;喷子&#xff0c;狙击枪&#xff0c…

Redis生产实战-Redis集群故障探测以及降级方案设计

Redis 集群故障探测 在生产环境中&#xff0c;如果 Redis 集群崩溃了&#xff0c;那么会导致大量的请求打到数据库中&#xff0c;会导致整个系统都崩溃&#xff0c;所以系统需要可以识别缓存故障&#xff0c;限流保护数据库&#xff0c;并且启动接口的降级机制 降级方案设计 …