当前位置: 首页 > news >正文

【调试Bug】网络在训练中输出NaN

首先情况是开始训练正常,网络也在更新,更新后网络就输出了NaN。调试过程:

1. 查看模型权重更新前后的值

        print("更新前权重信息:")print(f"  权重均值: {fc2.weight.mean().item() if not torch.isnan(fc2.weight.mean()) else 'NaN'}")print(f"  最大值: {fc2.weight.max().item() if not torch.isnan(fc2.weight.max()) else 'NaN'}")print(f"  最小值: {fc2.weight.min().item() if not torch.isnan(fc2.weight.min()) else 'NaN'}\n")权重更新print("更新后权重信息:")print(f"  权重均值: {fc2.weight.mean().item() if not torch.isnan(fc2.weight.mean()) else 'NaN'}")print(f"  最大值: {fc2.weight.max().item() if not torch.isnan(fc2.weight.max()) else 'NaN'}")print(f"  最小值: {fc2.weight.min().item() if not torch.isnan(fc2.weight.min()) else 'NaN'}\n")

    判断标准

    • 权重 / 偏置的绝对值如果超过1e4,可能导致输出过大。
    • 若训练中权重突然变得极大,说明可能存在梯度爆炸。

    2. 发现权重更新前正常,更新后NaN

    权重在参数更新后变成了NaN,这说明问题出在反向传播和参数更新环节(梯度计算或优化器步骤导致权重被更新为异常值)。

    原因分析:

    权重从正常数值突然变成NaN,几乎可以确定是梯度爆炸导致的:

    • 反向传播时计算出的梯度为NaN或极端大值(如1e20),优化器用这些异常梯度更新权重,直接导致权重变成NaN
    • 常见触发点:损失函数计算异常(如NaN损失)、输入数据极端值导致中间激活值爆炸、学习率过高放大梯度影响。

    第一步 检查损失函数是否为NaN

    如果损失本身输出是NaN,反向传播的梯度必然是NaN,直接导致权重更新异常。在反向传播前检查损失需要。

    损失为NaN的常见原因:

    • 损失中包含log(0)(如nn.Softmax输出接近 0 时,torch.log(prob)会趋近于-inf

    结果:发现正是损失函数torch.log输出了NaN。

    3 解决

    限制torch.log的值,NaN的问题得到了解决

    http://www.dtcms.com/a/297453.html

    相关文章:

  • 工业与安防视频场景下,如何选择更合适的音视频技术方案
  • 创建 GitLab Runner 使用CICD自动化部署容器
  • 2025 Gitee vs. GitLab:全面对比与选择指南
  • MyBatis高级应用实战指南
  • JAVA + 海康威视SDK + FFmpeg+ SRS 实现海康威视摄像头二次开发
  • RWA的法律合规性如何保证?KYC/AML在RWA项目中的作用是什么?
  • 关于回归决策树CART生成算法中的最优化算法详解
  • AWS CAF:企业云转型的战略指南
  • 飞行控制领军者 | 边界智控携高安全级飞控系统亮相2025深圳eVTOL展
  • 多租户系统中的安全隔离机制设计
  • Spring 生态创新应用:现代架构与前沿技术实践
  • 【Rust线程池】如何构建Rust线程池、Rayon线程池用法详细解析
  • SQLFluff
  • 数字增加变化到目标数值动画,js实现
  • react+threejs实现自适应分屏查看/3D场景对比功能/双场景对比查看器
  • GitHub git push 推送大文件
  • Linux: network: wireshark: tcp的segment重组是怎么判断出来的
  • Git下载与安装全攻略
  • reflections:Java非常好用的反射工具包
  • SEC_FirePower 第二天作业
  • 【深度学习新浪潮】Claude code是什么样的一款产品?
  • Keepalived 原理及配置(高可用)
  • 校园二手交易小程序的设计与实现
  • 局域网 IP地址
  • mid360连接机载电脑,远程桌面连接不上的情况
  • 智慧校园(智能出入口控制系统,考勤,消费机,电子班牌等)标准化学校建设,加速业务规模发展,满足学校、家长及学生对智能化、便捷化校园管理的需求清单如下
  • 三骏破局AI时代:电科金仓以“马背智慧”重定义数据库一体机
  • 从数据脱敏到SHAP解释:用Streamlit+XGBoost构建可复现的川崎病诊断系统
  • 12. isaacsim4.2教程-ROS 导航
  • 剖析 Web3 与传统网络模型的安全框架