Tensorflow Keras的损失突然从很小的价值变成了很小的价值

Tensorflow Keras的损失突然从很小的价值变成了很小的价值,tensorflow,machine-learning,keras,Tensorflow,Machine Learning,Keras,嗨,有人知道是什么原因导致训练突然中断吗 我正在训练一个小型网络,其中包含几个conv/batchnorm/relu/maxpool/SGD密集层。Ytrain是(?,1)形状,因此对于批量大小为1的情况,每次y真是(1,1)张量。我使用自定义损耗函数: def my_loss(y, yhat): mse = keras.losses.mean_squared_error(y, yhat) return K.sqrt(mse) 培训日志显示: 52725/2483247 [......

嗨,有人知道是什么原因导致训练突然中断吗

我正在训练一个小型网络,其中包含几个conv/batchnorm/relu/maxpool/SGD密集层。Ytrain是(?,1)形状,因此对于批量大小为1的情况,每次y真是(1,1)张量。我使用自定义损耗函数:

def my_loss(y, yhat):
  mse = keras.losses.mean_squared_error(y, yhat)
  return K.sqrt(mse)
培训日志显示:

52725/2483247 [..............................] - ETA: 5:54:20 - loss: 0.0759
52731/2483247 [..............................] - ETA: 5:54:20 - loss: 0.0759
52737/2483247 [..............................] - ETA: 5:54:20 - loss: inf
52743/2483247 [..............................] - ETA: 5:54:20 - loss: inf

训练数据为正数,不包含零或nan,对于样本52725-52743,值为0.09到72.7之间的单个特征。我不确定inf来自哪里。有什么想法吗?

被零除?似乎是一个爆炸性的梯度问题,一般原因是初始化不好或学习率高。这是可能的,我只是不知道被零除是从哪里来的。我没有设置初始值设定项,我会尝试一下。学习率为0.00002,所以可能不是。@Ann尝试打印预测的标签,然后,您使用的是哪个优化器?