keras模型中的NaN损失

时间:2019-05-19 05:12:34

标签: machine-learning keras neural-network deep-learning

我有大约100k的顺序数据“数据批次”,我正在运行相当复杂的循环模型(120k参数)。在某个点(看起来相当随机)之后,损失变为nan。我尝试了以下

  1. 检查数据是否为非数字
  2. 渐变将其裁剪为标准1
  3. 限制每个图层的参数,
  4. 降低学习率并添加到RMSProp的epsilon中,但是经过一定时间后,我仍然会得到NaN。

我还能尝试调试吗?

2 个答案:

答案 0 :(得分:1)

没有代码,我只能给出一个非常笼统的答案:

当您执行以下操作时,可能会发生NaN:

  • 除以0
  • 对数太小
  • 一些负面的东西

查看优化指标,以了解您的情况可能会发生什么。寻找(绝对)数字可能变得非常大或非常小的点。通常,添加一个小的常数可以解决问题。

还有许多其他情况,可能与您无关:

  • [-1,1]以外的弧菌
  • float('inf')/ float('inf')
  • 0 * float('inf')

另请参阅:我的debugging neural networks指南

答案 1 :(得分:-2)

我不使用循环网络,但是当训练批量较小时,我在与CNN的合作中遇到了偶发的NaN问题。尝试扩大批次大小。