错误记录 - 训练深度学习模型loss为nan的原因

前言

最近师弟在实际业务中训练深度学习模型时遇到个问题:在大样本训练模型时候的loss为nan,尝试了各种方法也没有什么起色,最终一起分析了一番拟确定了原因,这边就分享下可能的原因可供分析调整~

原因

1.模型问题
  • 网络结构设计问题

    通过弱化场景,简化样本的方式去检查是否为网络的问题

  • 损失函数设置不合理

  • 激活函数选择不当

  • 参数初始化问题

2.数据问题
  • 数据需归一化

    • 减均值
    • 除方差
    • 加入normalization(BN\L2 norm等)
  • 数据标签不在[0, num_classes)范围内

  • 训练样本存在脏数据

    这个是和师弟最终确定的原因,因为在实际业务中的真实数据需要耗费较多的时间去处理,不像open dataset那样已经帮你处理的干干净净,所以如上述的方法一一检查过了还是没有成效的话,一定要好好地检查下数据。

3.训练问题

loss为nan的说明loss发散,这个时候需要考虑下梯度爆炸的可能,那么相应的解法方式如下:

  • 调小学习率lr
  • 调小batch size
  • 加入gradient clipping
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值