昇腾pytorch 混合精度/半精度训练不生效

ops/2024/12/14 23:21:19/

现象

在昇腾NPU卡上训练,不管是否在代码中添加with autocast(),显存占用都没变化。

原因分析

原因是,错误地使用了torch.cuda.amp.autocast,这个调用在cuda环境能生效,但在昇腾环境不生效,错误示例如下:

from torch.cuda.amp import autocastwith autocast(enabled=True):result = model(batch)...

解决办法是改成使用torch.autocast,示例如下:

with torch.autocast(enabled=True, device_type="npu", dtype=torch.float16):result = model(batch)

其它

笔者耗费了一整天才发现的解决方法,如果帮到你了请点赞。


http://www.ppmy.cn/ops/141939.html

相关文章

【速览】设计模式(更新中)

目录 模式的历史设计模式是什么设计原则 SOLID1. 单一职责原则(Single Responsibility Principle, SRP)2. 开闭原则(Open/Closed Principle, OCP)3. 里氏替换原则(Liskov Substitution Principle, LSP)4. 接…

QT配置boost库

1. 下载解压 boost官网 boost1.86 2. QT.pro添加路径: CONFIG c17 INCLUDEPATH “D:\boost_1_86_0” QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17DEFINES QT_DEPRECATED_WARNINGS INCLUDEPATH "D:\boost_1_86_0"…

Python面试常见问题及答案1

一、基础语法部分 问题1: Python中的列表(List)和元组(Tuple)有什么区别? 答案1: 列表是可变的(mutable),可以对其进行增删改操作。例如: my_l…

(补)算法刷题Day16:BM39 序列化二叉树

题目链接 描述 思路: 自行序列化和反序列化。元素用逗号分隔。 序列化: 使用队列层序遍历。遍历每一层节点,并访问其左右孩子,如果是空则序列化成#,如果是数字,则序列化成str。 反序列化: 使…

微信小程序:实现节点进度条的效果;正在完成的节点有动态循环效果;横向,纵向排列

参考说明 微信小程序实现流程进度功能 - 知乎 上面的为一个节点进度条的例子&#xff0c;但并不完整&#xff0c;根据上述代码&#xff0c;进行修改完善&#xff0c;实现其效果 横向效果 代码 wxml <view classorder_process><view classprocess_wrap wx:for&quo…

POE网络变压器和常规网络变压器的区别

POE网络变压器是一种特殊类型的网络变压器&#xff0c;它不仅具备传统网络变压器的功能&#xff0c;如电气隔离、阻抗匹配和信号耦合&#xff0c;还为以太网供电&#xff08;Power Over Ethernet&#xff0c;简称POE&#xff09;提供支持。具体来说&#xff0c;POE网络变压器能…

前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换

目录 示例&#xff1a; 准备&#xff1a; ?编辑 开始&#xff1a; 1、新建页面&#xff0c;在script标签中引入百度地图的api数据&#xff0c;把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象&#xff0c;设置宽高 3、在js中初始化地图 进阶&#xff1a; 1…

ARMS,让企业应用性能问题无处藏身

在科技驱动的时代&#xff0c;企业对应用程序的依赖越来越深&#xff0c;但复杂的系统架构和高并发的使用场景也让应用的性能维护成为巨大的挑战。当用户体验成为企业竞争的核心&#xff0c;如何快速发现问题、优化性能&#xff0c;成为每一个技术团队必须解决的难题。应用实时…