我有一个731行* 987列的数据集,试图在第一列上回归。在训练的第一步骤中,损失立即是NaN。我不知道如何。
我从tensorflow自定义估计器教程构建了模型,因此我正在构建层的结构,将模型函数提供给估计器,然后调用estimator.train。由于是回归,因此损失为tf.losses.mean_squared_error。
调试步骤以试图找出这种直接的NaN损失:
权重和偏差初始值设定项为tf.zeroesinitializer,学习率为0。
批处理大小为731(行数)时,我可以使用前49列运行模型,其中包括第50列会导致NaN损失。
批处理大小为9,我可以在所有列上运行它,损失大约6000。
批处理大小为10,且所有列都为NaN(与往常一样,第一步)。
将所有数据替换为0,可以运行所有列和完整批处理大小。
对我来说,这是一个问题,因为其中包含的数据点数量会影响NaN强度。但是我不知道如何解决它。当我最初包含太多数据时,第一步可能会导致NaN损失吗?作为第二个问题,我应该采取哪些进一步的调试步骤来解决这个问题?