通过装饰器将有BUG的pytorch算子放置在CPU上,而不用修改模型代码

通过装饰器将有BUG的pytorch算子放置在CPU上,而不用修改模型代码

  • 1.代码

某些pytorch算子发下到设备后会导致设备异常,为了暂时规避,先放在CPU上执行
修改模型源码很不友好,可以采用以下方法

1.代码

def force_cpu(func):def wrapper(self, *args, **kwargs):self_cpu = self.cpu()args_cpu = [arg.cpu() if isinstance(arg, torch.Tensor) else arg for arg in args]kwargs_cpu = {k: v.cpu() if isinstance(v, torch.Tensor) else v for k, v in kwargs.items()}return func(self_cpu, *args_cpu, **kwargs_cpu).to(self.device)return wrappertorch.Tensor.masked_fill = force_cpu(torch.Tensor.masked_fill)device="cuda"
causal_mask=torch.ones((1, 1, 2048, 2048),dtype=torch.float16).to(device)
padding_mask=torch.ones((1, 1, 2048, 14),dtype=torch.bool).to(device)
min_dtype= -65504.0
mask_length=14
causal_mask[..., :mask_length] = causal_mask[..., :mask_length].masked_fill(padding_mask, min_dtype)
torch.cuda.synchronize()

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

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

相关文章

在Windows可以如此丝滑的测试ios应用

在没有Mac本的时候,又想测试iphone或者ipad该怎么办? 最简单的办法当然是买一个了,如果经济上觉得不划算的话,不妨看看这篇文章,或许能帮到您,有任何问题欢迎一起交流。 原理图 开发环境 操作系统:Windows11 被测设备: iPad mini 15.5 注意事项 一定要安装iTunes!一…

NET程序开发可能会用到的一些资料文档

NET程序开发使用的一些资料文件,NET高级调试,NET关键技术深入解析,WPF专业编程指南,程序员求职攻略,WPF编程宝典等。 下载链接:https://download.csdn.net/download/qq_43307934/89518582

GPT-4o将改变论文学术文风,科学家揭示5年内百万篇论文“is”“are”词频减少10%!

在最近的一项研究中,意大利国际高等研究院(SISSA)的博士生耿明萌量化了 ChatGPT 对学术论文写作的影响。 与以往主要分析 ChatGPT 生成的段落或文章不同,这次研究更关注整体情况。 论文地址:https://arxiv.org/pdf/2…

如何在Vue中添加事件监听器

在Vue中添加事件监听器主要有两种方式:在模板中直接添加和使用Vue实例的方法。以下将详细解释这两种方法。 1. 在模板中直接添加 在Vue的模板中,你可以直接在HTML元素上使用v-on指令(或其简写形式)来监听DOM事件,并在…

SpringBoot怎么单独关闭某个类打印出来的日志?

application.yml文件增加以下内容: logging:level:org.springframework.amgp.rabbit: OFF 配置logging:level是配置的什么? 在application.yml文件中配置logging.level是用来设置日志级别的。这是Spring Boot应用中的一个常用配置,它允许您…

go内存返还系统相关代码

在go中内存返还系统相关代码主要由sysUnusedOS实现 在Linux中默认是通过madvice方法的_MADV_FREE进行释放,在这种释放中内存其实是被延迟回收的。 func sysUnusedOS(v unsafe.Pointer, n uintptr) {if uintptr(v)&(physPageSize-1) ! 0 || n&(physPageSiz…

Spring AOP实现操作日志记录示例

1. 准备工作 项目环境:jdk8springboot2.6.13mysql8 1.1 MySQL表 /*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50730Source Host : 127.0.0.1:3306Source Schema …

双扩散金属氧化物半导体(DMOS)应用广泛 超结VDMOS市场需求空间大

双扩散金属氧化物半导体(DMOS)应用广泛 超结VDMOS市场需求空间大 双扩散金属氧化物半导体简称DMOS,是MOS管的一种。MOS管全称为金属氧化物半导体场效应管,又称为MOSFET,是一种利用改变电压来控制电流的半导体器件。  …

《梦醒蝶飞:释放Excel函数与公式的力量》8.8 STDEVP函数

8.8 STDEVP函数 STDEVP函数是Excel中用于计算总体数据的标准偏差的函数。标准偏差是统计学中的一个重要指标,用于衡量数据集中各数值偏离平均值的程度。总体标准偏差考虑了整个数据集,而不是样本。 8.8.1 函数简介 STDEVP函数用于返回总体数据的标准偏…

2023年工作回顾与总结

一、工作概述 主要工作职责和任务 完善XXX平台的基础能力优化XXX平台基础架构负责平台小组代码评审负责复杂功能的提供技术支持负责复杂功能的技术方案评审负责XXX国家项目中平台相关项目通过验收 具体内容和完成情况 XX平台架构优化 (1)完成通用控…

Redis 中的通用命令(命令的返回值、复杂度、注意事项及操作演示)

Redis 中的通用命令(高频率操作) 文章目录 Redis 中的通用命令(高频率操作)Redis 的数据类型redis-cli 命令Keys 命令Exists 命令Expire 命令Ttl 命令Type命令 Redis 的数据类型 Redis 支持多种数据类型,整体来说,Redis 是一个键值对结构的,…

第N7周:seq2seq翻译实战-pytorch复现-小白版

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 理论基础 seq2seq(Sequence-to-Sequence)模型是一种用于机器翻译、文本摘要等序列转换任务的框架。它由两个主要的递归神经网络&#…

【leetcode】双指针算法题

文章目录 1.算法思想2.移动零3.复写零方法一方法二 4.快乐数5.盛水最多的容器方法一(暴力求解)方法二(左右指针) 6.有效三角形的个数方法一(暴力求解)方法二(左右指针) 7.两数之和8.…

CNN文献综述

卷积神经网络(Convolutional Neural Networks,简称CNN)是深度学习领域中的一种重要模型,主要用于图像识别和计算机视觉任务。其设计灵感来自于生物学中视觉皮层的工作原理,能够高效地处理图像和语音等数据。 基本原理…

UVa1265/LA4848 Tour Belt

UVa1265/LA4848 Tour Belt 题目链接题意分析AC 代码 题目链接 本题是2010年icpc亚洲区域赛大田赛区的F题 题意 给出一个有n个结点m条边的加权无向图G(2≤n≤5000,1≤m≤n(n-1)/2),满足如下条件的结点集B(2≤|B|≤n&am…

剪画小程序:手机制作音乐串烧,用它,真的很简单!

Hello,大家好呀,我是不会画画的小画。 相伴关注歌手的小伙伴们,上周五的《歌手 2024》第八期大家看了吧!那期节目里有好几首歌都让我沉醉其中,像汪苏泷的《听见下雨的声音》、谭维维的《兰花花儿》等等。 为了能让大…

c++之旅第十一弹——顺序表

大家好啊,这里是c之旅第十一弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一,数据结构…

基于docker环境及Harbor部署{很简短一点了,耐心看吧}

用到的环境: docker 、nacos、compose、harbor(自行安装 ,以下连接作为参考) nacos:史上最全整合nacos单机模式整合哈哈哈哈哈_nacos 源码启动 单机模式-CSDN博客 docker、compose、harbor:史上最全的整合Harbor安装教程&#…

ChatGPT:AOP配置中的切入点定义

ChatGPT&#xff1a;AOP配置中的切入点定义 <aop:pointcut id“addTime” expression“execution(* com.xrq.aop.HelloWorld.print*(…))” /> 这是什么 这是一个AOP&#xff08;面向方面编程&#xff09;配置中的切入点定义。AOP是一种编程范式&#xff0c;用于将跨越多…

把鼠标光标移到一段文字的首部,尾部,以及翻行查找文字等

如果当前的键盘无单独的End、Home、PgDn、PdUp。 1、如果光标在一段文字的中间&#xff1a; 需要快速移到文字尾部&#xff0c;按住&#xff1a;shiftEnd(如果End在数字1键扣上,shift1&#xff09; 需要快速移到文字首部&#xff1a;按住&#xff1a;shiftHome(如果End在数字…