深度学习八股文:混合精度训练过程出nan怎么办
其实如果是FP32的训练,基本的调试方法还是差不多,这里就讲一下混合精度训练过程中的nan。
混合精度训练使用较低的数值精度(通常是半精度浮点数,例如FP16)来加速模型训练,但在一些情况下,可能会引发数值不稳定性的问题,导致 NaN 的出现。处理混合精度训练中的 NaN 问题时,可以考虑以下步骤:
数值检查: 在训练过程中,定期检查模型参数、梯度等是否包含 NaN 或 Inf(无穷大)值。你可以在训练循环中添加断言语句,及时发现异常值
assert not torch.isnan(model.parameters()).any(), "Model parameters contain NaN!"
梯度缩放(Gradient Scaling): 在混合精度训练中,通常会使用梯度缩放来抵消使用较低精度带来的梯度范围减小的问题。你可以尝试调整梯度缩放的比例。
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
注意,相比与前向出nan,混合精度训练会多一个梯度缩放的过程,这个是前向没有出nan的前提下实现的,影响的梯度更新:
前向计算过程中没有nan,loss算完后,乘以scale后导致inf,这时候再往后反向传播出nan了,那在梯度更新的时候就会在梯度更新前进行数值检查,check finite and unscale过程会去检查权重的梯度发现有nan或者inf就会跳过更新,此时就可以调整scale的值,把scale降低,然后跑下一个step的前向。如果scale调整后,乘以loss,没有inf,就调成功了,继续正常更新参数,如果还是inf就得继续调小scale
相关文章:
深度学习八股文:混合精度训练过程出nan怎么办
其实如果是FP32的训练,基本的调试方法还是差不多,这里就讲一下混合精度训练过程中的nan。 混合精度训练使用较低的数值精度(通常是半精度浮点数,例如FP16)来加速模型训练,但在一些情况下,可能会…...
竞赛选题 题目:基于卷积神经网络的手写字符识别 - 深度学习
文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…...
Cesium-terrain-builder编译入坑详解
本以为编译cesium-terrian-tools编译应该没那么难,不想问题重重,不想后人重蹈覆辙,也记录下点点滴滴。 目前网上存在的cesium代码版本主要有两个分支: 原始网站【不能生成layer文件,且经久不更新,使用gdal…...
3.1 CPU内部结构与时钟与指令
CPU内部结构 总线一些自定义部件总线图内存指令执行流程:取指令,译码,执行pc做的事内存地址寄存器内存缓存寄存器指令寄存器,译码第一步指令寄存器传递地址到内存地址寄存器指令MOV_A的过程(译码第二步)第一条指令执行完毕第三条指令的执行第四条指令第四条指令不同的执行流程…...
电机应用-直流有刷电机多环控制实现
目录 直流有刷电机多环控制实现 硬件设计 直流电机三环(速度环、电流环、位置环)串级PID控制-位置式PID 编程要点 配置ADC可读取电流值 配置基本定时器6产生定时中断读取当前电路中驱动电机的电流值并执行PID运算 配置定时器1输出PWM控制电机 配…...
Java常量池理论篇:Class常量池、运行时常量池、String常量池、基本类型常量池,intern方法1.6、1.7的区别
文章目录 Class常量池运行时常量池String常量池基本类型常量池Integer 常量池Long 常量池 加餐部分 Class常量池 每个Class字节码文件中包含类常量池用来存放字面量以及符号引用等信息。 运行时常量池 java文件被编译成class文件之后,也就是会生成我上面所说的 …...
module java.base does not “opens java.io“ to unnamed module
环境 如上图所示, Runtime version的版本是JAVA 17 项目所需要JDK版本为JAVA 8 解决...
鸿蒙原生应用/元服务开发-AGC分发如何配置签名信息
使用制作的私钥(.p12)文件、在AGC申请的证书文件和Profile(.p7b)文件,在DevEco Studio配置工程的签名信息,以构建携带发布签名信息的APP。 1.打开DevEco Studio,菜单选择“File > Project S…...
【HTML5-webscoket实时通信(web)】
websocket是什么? 就是用来创建网络聊天室,实时通信websocket的方法有哪些? https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets如何实现:(以下实现流程) 前端: // 直播中// 聊天web…...
如何在Android平板上远程连接Ubuntu服务器code-server进行代码开发?
文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code serve…...
SAP Smartforms打印报错Error in spool C call : spool overflow
处理方式: SAP打印时提示: Error in spool C call : spool overflow (假脱机请求溢出,通俗一点打印池已满) 解决办法: SE38 首先运行程序RSPO1041 再运行RSPO1043,话不多说上图。...
SQL 中的运算符与别名:使用示例和语法详解
SQL中的IN运算符 IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写。 示例:获取您自己的SQL Server 返回所有来自’Germany’、France’或’UK’的客户: SELECT * FROM Customers WHERE Country IN (Germany, France, UK);语…...
3.2 CPU的自动化
CPU的自动化 改造1-使用2进制导线改造2根据整体流程开始改造指令分析指令MOV_A的开关2进制表格手动时钟gif自动时钟gif 根据之前的CPU内部结构改造,制造一个cpu控制单元 改造一 之前的CPU全由手动开关自己控制,极度繁琐,而开关能跟二进制一一对应, 开:1, 关:0图1是之前的, …...
深入理解@Resource与@Autowired:用法与区别解析
Resource: Resource 是Java EE提供的注解,也可以在Spring中使用。它是按照名称进行注入的,默认通过属性名(通常是类名的小驼峰命名方式)或者name属性来匹配。如果找不到符合名称的bean,则会抛出异常。在使…...
高级驾驶辅助系统 (ADAS)介绍
随着汽车技术持续快速发展,推动更安全、更智能、更高效的驾驶体验一直是汽车创新的前沿。高级驾驶辅助系统( ADAS ) 是这场技术革命的关键参与者,是 指集成到现代车辆中的一组技术和功能,用于增强驾驶员安全、改善驾驶体验并协助完成各种驾驶任务。它使用传感器、摄像头、雷…...
2 使用React构造前端应用
文章目录 简单了解React和Node搭建开发环境React框架JavaScript客户端ChallengeComponent组件的主要结构渲染与应用程序集成 第一次运行前端调试将CORS配置添加到Spring Boot应用使用应用程序部署React应用程序小结 前端代码可从这里下载: 前端示例 后端使用这里介…...
[计算机网络]运输层概述
虽然我自己也不知道写在前面和前言有什么区别..... 这个系列其实是针对<深入浅出计算机网络>的简单总结,加入了一点个人的理解和浅薄见识,如果您有一些更好的意见和见解,欢迎随时协助我改正,感激不尽啦. 最近心态平和了不少, 和过去也完全做了个割舍吧,既然痛苦和压力的…...
【分布式】分布式事务及其解决方案
目录 一、分布式事务二、分布式事务的解决方案1. 全局事务(1)DTP模型(2) 两阶段提交协议(2PC)原理二阶段提交的缺点 (3)三阶段提交协议(3PC)原理 2. 基于可靠…...
【文末送书】机器学习高级实践
2023年初是人工智能爆发的里程碑式的重要阶段,以OpenAI研发的GPT为代表的大模型大行其道,NLP领域的ChatGPT模型火爆一时,引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升,它能够同时接受图像和文本的输入…...
吉他初学者学习网站搭建系列(1)——目录
文章目录 背景文章目录功能网站地址网站展示展望 背景 这个系列是对我最近周末搭建的吉他工具类平台YUERGS的总结。我个人业余爱好是自学吉他,我会在这个平台中动手集成我认为很有帮助的一些工具,来提升我的吉他水平和音乐素养,希望也可以帮…...
终极指南:如何快速定位Windows热键冲突问题的罪魁祸首
终极指南:如何快速定位Windows热键冲突问题的罪魁祸首 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...
OpenCore Legacy Patcher终极指南:4步让老Mac显卡驱动重获新生
OpenCore Legacy Patcher终极指南:4步让老Mac显卡驱动重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 让旧Mac焕发新生的终极解决方案来了…...
从LLM到CodeSummarizer:2026奇点大会公布的3层抽象蒸馏模型,如何将PR评审效率提升400%?
第一章:2026奇点智能技术大会:AI代码摘要 2026奇点智能技术大会(https://ml-summit.org) 核心发布:CodeLens-7 智能摘要引擎 大会首次开源 CodeLens-7,一款面向多语言、跨上下文的轻量级代码语义摘要模型。它支持 Python、Go、R…...
3步永久保存微信聊天记录:WeChatExporter完整指南
3步永久保存微信聊天记录:WeChatExporter完整指南 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机损坏、系统升级或误删而丢失了珍贵的微信聊天…...
Vue项目实战:从零到一集成el-amap高德地图组件
1. 环境准备与高德账号申请 第一次在Vue项目里集成地图功能时,我踩了不少坑。记得当时为了赶项目进度,直接照着网上零散的教程操作,结果因为密钥配置错误折腾了大半天。现在回想起来,其实只要把前期准备工作做扎实,后面…...
品牌年轻化背后,是一场“决策效率”的竞争
品牌年轻化,这四个字,现在几乎成了所有消费品牌老板的“共识焦虑”。但我先把一句话放在前面——大多数企业做的,不是品牌年轻化,而是品牌“表面年轻化”。你换了logo,换了包装,拍了点短视频,请…...
ISOWorkshop光盘镜像处理工具:制作光盘镜像与ISO解压提取的完整指南
在日常工作和学习中,你是否遇到过这些情况:手头有一张重要的光盘,担心划伤或丢失,想把它原样备份到电脑里;下载了一个ISO文件,只想取出其中的一个驱动程序或文档,却不得不解压全部内容ÿ…...
避坑指南:在PlatformIO上为ESP32-S3移植LVGL、AI语音和摄像头时,我遇到的5个典型问题
ESP32-S3多功能开发实战:从LVGL优化到AI语音集成的避坑指南 在物联网和嵌入式开发领域,ESP32-S3凭借其强大的双核处理能力和丰富的外设接口,成为智能终端设备的首选平台之一。但当我们将LVGL图形库、AI语音交互和摄像头功能集成到同一个项目中…...
3个颠覆性思维:如何用零代码将3D艺术变成Minecraft世界
3个颠覆性思维:如何用零代码将3D艺术变成Minecraft世界 【免费下载链接】ObjToSchematic A tool to convert 3D models into Minecraft formats such as .schematic, .litematic, .schem and .nbt 项目地址: https://gitcode.com/gh_mirrors/ob/ObjToSchematic …...
AGI将重塑全球GDP格局:2026年前必须掌握的5个关键经济指标与应对框架
第一章:SITS2026专家:AGI的经济影响预测 2026奇点智能技术大会(https://ml-summit.org) 劳动力市场结构性重塑 SITS2026专家组基于多国宏观经济模型与AGI渗透率模拟指出,到2030年,具备自主目标建模与跨域推理能力的通用人工智能…...
