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

深度学习loss变为nan的问题

在网上查了一些资料,但是这个情况和网上都不太一样。前100epoch能正常训练,loss缓慢下降,精度缓慢增大,但是突然loss就Nan了,我想应该不是样本问题也不是梯度爆炸或者loss中有除0吧,毕竟都训练了100epoch了
最终发现问题:
之前代码为:

predict = torch.log(torch.softmax(result, dim=-1))

损失函数为:

torch.nn.NLLLOSS

更改后

#predict = torch.log(torch.softmax(result, dim=-1))

直接删去softmax和log而损失函数改为:

criterion= nn.CrossEntropyLoss()

nan消失
网上查阅nn.CrossEntropyLoss()的实现为:

import torch.nn as nnm = nn.LogSoftmax()loss = nn.NLLLoss()# input is of size nBatch x nClasses = 3 x 5input = autograd.Variable(torch.randn(3, 5), requires_grad=True)# each element in target has to have 0 <= value < nclassestarget = autograd.Variable(torch.LongTensor([1, 0, 4]))output = loss(m(input), target)

其实直接使用pytorch中的loss_func=nn.CrossEntropyLoss()计算得到的结果与softmax-log-NLLLoss计算得到的结果是一致的。那原因主要在nn.LogSoftmax()上了。直接使用nn.LogSoftmax()和分开写:torch.log(torch.softmax(result, dim=-1))有什么不一样吗?为什么torch.log(torch.softmax(result, dim=-1))这样写会在训练过程中产生nan呢?

http://www.lryc.cn/news/132530.html

相关文章:

  • 音视频 ffplay命令-主要选项
  • 深入浅出Pytorch函数——torch.nn.init.dirac_
  • [Go版]算法通关村第十三关青铜——数字数学问题之统计问题、溢出问题、进制问题
  • GPT-4一纸重洗:从97.6%降至2.4%的巨大挑战
  • 大数据Flink学习圣经:一本书实现大数据Flink自由
  • 什么是微服务?
  • 【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)
  • 系统架构设计专业技能 · 软件工程之需求工程
  • 2023国赛数学建模E题思路模型代码 高教社杯
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C++)
  • 从 Ansible Galaxy 使用角色
  • ROS与STM32通信(二)-pyserial
  • [oneAPI] 使用Bert进行中文文本分类
  • 【数据治理】什么是数据库归档
  • AI代码补全 案例 - 阿里云智能编码插件Cosy
  • 【Linux】进程信号篇Ⅰ:信号的产生(signal、kill、raise、abort、alarm)、信号的保存(core dump)
  • 漏洞指北-VulFocus靶场专栏-中级03
  • 【leetcode 力扣刷题】数组交集(数组、set、map都可实现哈希表)
  • MySQL 8.0.31 登录提示caching_sha2_password问题解决方法
  • [Google] DeepMind Gemini: 新一代LLM结合AlphaGo技术将力压 GPT-4|未来 AI 领域的新巨头
  • Maven高级
  • 【视觉SLAM入门】5.2. 2D-3D PNP 3D-3D ICP BA非线性优化方法 数学方法SVD DLT
  • 人脸老化预测(Python)
  • AWS SDK 3.x for .NET Framework 4.0 可行性测试
  • 两个list。如何使用流的写法将一个list中的对象中的某些属性根据另外一个list中的属性值赋值进去?
  • 美国陆军希望大数据技术能够帮助保护其云安全
  • vue 文字跑马灯
  • 开源ChatGPT系统源码 采用NUXT3+Laravel9后端开发 前后端分离版本
  • 【LeetCode|数据结构】剑指 Offer 33. 二叉搜索树的后序遍历序列
  • 自定义协程