PyTorch 中 `torch.cuda.amp` 相关警告的解决方法

在最近的写代码过程中,遇到了两个与 PyTorch 的混合精度训练相关的警告信息。这里随手记录一下。


警告内容

警告 1: torch.cuda.amp.autocast

FutureWarning: `torch.cuda.amp.autocast(args...)` 
is deprecated. Please use `torch.amp.autocast('cuda', args...)` 
instead.   with autocast():

警告 2: torch.cuda.amp.GradScaler

FutureWarning: `torch.cuda.amp.GradScaler(args...)` 
is deprecated. Please use `torch.amp.GradScaler('cuda', args...)` 
instead.   scaler = GradScaler()

原因分析

在这里插入图片描述

根据 PyTorch 官方文档的更新说明,从 PyTorch 2.4 版本开始,torch.cuda.amp 模块中的部分 API 已被标记为弃用(deprecated)。为了统一 API 的设计风格,并支持更多的后端设备(如 CPU 和其他加速器)。

虽然目前这些警告并不会导致程序报错,但官方建议开发者尽快调整代码以适配最新版本的规范。


方法 1: 适配新 API

替换 autocastGradScaler

from torch.cuda.amp import autocast
with autocast():# Your codefrom torch.cuda.amp import GradScaler
scaler = GradScaler()

改为:

from torch.amp import autocast
with autocast('cuda'):# Your code from torch.amp import GradScaler
scaler = GradScaler(device='cuda')

注意:如果需要支持多设备(如 CPU),可以将 'cuda' 替换为 'cpu' 或其他目标设备。


方法 2: 降级 PyTorch 版本

如果你暂时不想修改代码,可以选择降级到 PyTorch 2.3 或更低版本。可以通过以下命令安装指定版本的 PyTorch:

pip install torch==2.3

不过,这种方法并不推荐,因为旧版本可能会缺少一些新功能或性能优化。


方法3:懒得管

import warnings
warnings.filterwarnings("ignore", category=UserWarning)

两行代码解决一切(不推荐)

尽管这些警告不会立即导致程序运行失败,但为了确保代码的兼容性和未来的可维护性,建议按照官方文档的要求对代码进行调整。此外,定期关注 PyTorch 官方文档和技术博客,可以及时了解最新的 API 变更和最佳实践。

如果还有其他疑问,欢迎留言交流。 😊

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

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

相关文章

C++ STL容器之set使用及复现

cset 1. 关联式容器 vector、list、deque、forward_list(C11) 等STL容器,其底层为线性序列的数据结构,里面存储的是元素本身,这样的容器被统称为序列式容器。而 map、set 是一种关联式容器,关联式容器也是用来存储数据的&#x…

激光工控机在精密制造中的应用与优势

在精密制造中,激光工控机可以用于许多场景例如 激光切割与雕刻:用于金属、塑料、陶瓷等材料的精密切割和雕刻,适用于汽车、航空航天、电子等行业;可实现复杂图案和高精度加工,满足微米级精度要求。 激光焊接&#xf…

第 12 天:行为树(Behavior Tree),让 AI 更智能!

🎯 目标: ✅ 理解 Unreal Engine 5 行为树(Behavior Tree) ✅ 创建行为树(BT)和黑板(Blackboard)管理 AI 状态 ✅ 使用任务(Task)让 AI 巡逻、追踪、攻击玩家…

AI眼力训练营:图像标注让机器变聪明

前言 在人工智能的世界里,图像标注就像给机器装上眼睛,让它不再是“瞎子”,而是能清楚看懂图像中的每个物体。想象一下,当我们人类刚开始学习时,常常要借助老师的帮助,指着一只狗说:“这就是狗。”AI也是一样,需要通过大量的“标注”来学会识别图像中的每个物体,就像…

Android 10.0 framework中增加开启和关闭飞行模式的接口

1.前言 在10.0的系统rom定制开发中,在某些产品定制化开发中,需要能通过接口来控制和开启飞行模式的相关 功能,所以就需要从系统settings和下拉状态栏中来看下相关的源码来实现相关功能 2.framework中增加开启和关闭飞行模式的接口的核心类 packages/services/Car/tests/C…

fun-transformer学习笔记-Task1——Transformer、Seq2Seq、Encoder-Decoder、Attention之间的关系

Transformer、Seq2Seq、Encoder-Decoder、Attention由这四者之间的关系可以从模型架构的发展脉络来理解: Seq2Seq 与 Encoder–Decoder 模型 “Seq2Seq”(sequence‐to‐sequence)是一类用于将一个变长序列映射为另一个变长序列的任务&#x…

WRF-Hydro:高级水文建模系统详解

1. WRF-Hydro 概述 什么是 WRF-Hydro? WRF-Hydro(Weather Research and Forecasting Hydrological modeling system)是由美国国家大气研究中心(NCAR)开发的一个用于耦合气象模型和水文模型的高级建模系统。它旨在提供…

公然上线传销项目,Web3 的底线已经被无限突破

作者:Techub 热点速递 撰文:Yangz,Techub News 今天早些时候,OKX 将上线 PI 的消息在圈内引起轩然大波,对于上线被板上钉钉为传销盘子的「项目」 ,Techub News 联系了 OKX 公关,但对方拒绝置评…

python的selenium库模拟输入和点击

使用python打开已经登录的谷歌浏览器,模拟录入文本提交数据。1、执行命令行,系统会打开浏览器,手工登录"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port9223 --user-data-dir"C:\tmp"…

Zabbix告警队列清理教程

文章来源:乐维社区 场景:由于网络故障导致,导致zabbix几百上千台机子告警,邮件失败多次尝试发送,导致堆积了很多告警队列,其他邮件产生了时延。一下是两种解决方法。 方法一: 1、查看alerts目…

vue知识点2

1.methods和mounted的区别 methods是定义方法,不涉及到调用 mounted涉及到操作 所以methods后面是:,mounted后面是() 2.介绍一下emit的用法 如果子控件要调用父页面的方法,在父页面的子控件引用处&…

Unity中快速制作2D动画:技巧编

用Unity制作2D动画,除了基础操作外,还有一些更高效的技巧和工具组合,可以大幅提升开发效率,以下是本人经验总结: 1. 分秒必争的Sprite Sheet处理 自动切割Sprite Sheet: 在导入Sprite Sheet时,在Sprite Editor中选择 Slice > Automatic,Unity会自动根据透明区域切割…

windows使用cmake编译工程教学:libcurl库源码编译--qt6使用ftp服务--vcpkg下载的包cmake如何使用

windows使用cmake编译工程教学:libcurl库源码编译–qt6使用ftp服务–vcpkg下载的包cmake如何使用 前言 qt6中取消了对ftp协议的支持,所以如果要想在qt中使用tfp服务,需要接入第三方库,也就是libcurl,libcurl需要在本地进行编译,趁这个机会学习一下cmake的使用,记录一下…

网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级

今年农历新年期间,全球AI领域再度掀起了一波革命性浪潮,国产通用大模型DeepSeek凭借其强大的多场景理解与内容生成能力迅速“出圈”,彻底改写全球人工智能产业的格局。 作为国内领先的数字内容风控服务商,网易易盾一直致力于探索…

护照识别设备-护照信息识别系统-PHP护照信息识别接口

护照是公民出入本国国境和到国外旅行时,由本国发给的一种证明该公民国际和身份的合法证件。护照作为重要的个人身份证明证件之一,对于出入境、酒店、旅游业等需要对护照进行信息提取与真伪查验的场景来说至关重要。 人工智能时代,基于文字识…

使用 React 16+Webpack 和 pdfjs-dist 或 react-pdf 实现 PDF 文件显示、定位和高亮

写在前面 在本文中,我们将探讨如何使用 React 16Webpack 和 pdfjs-dist 或 react-pdf 库来实现 PDF 文件的显示、定位和高亮功能。这些库提供了强大的工具和 API,使得在 Web 应用中处理 PDF 文件变得更加容易。 项目设置 首先,我们需要创建…

42页精品PPT | 数字政府智慧政务大数据平台建设方案

这份《数字政府智慧政务大数据平台建设方案》PPT详细阐述了数字政府智慧政务大数据平台的建设背景、目标、架构以及实施策略。方案围绕解决当前政务服务中的痛点,如“互联网政务服务”推进中的数据共享难题、数据安全风险以及部门间业务流程整合等问题展开。 通过构…

使用 Go 语言调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件。

使用 Go 语言调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件。 代码结构 包和依赖 package mainimport ("fmt""io""os""path/filepath""github.com/sashabaranov/go-openai" )使…

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层

CSS 小技巧 —— CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层 1. 两个元素实现 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>纯 CSS 实现 Tooltip 功能-鼠标 hover 之后出现弹层</titl…

网络工程师 (34)生成树协议

前言 生成树协议&#xff08;Spanning Tree Protocol&#xff0c;STP&#xff09;是一种工作在OSI网络模型中第二层&#xff08;数据链路层&#xff09;的通信协议&#xff0c;其基本应用是防止交换机冗余链路产生的环路&#xff0c;确保以太网中无环路的逻辑拓扑结构&#xff…