Tensorflow:如何使用nan值处理输入数据

时间:2017-09-19 05:55:15

标签: tensorflow nan

我有一个带有sigmoid损失的多层感知器(tf.nn.sigmoid_cross_entropy_with_logits)和一个Adam优化器(tf.train.AdamOptimizer)。我的输入数据有几个特征和一些南特征值。 当我用0替换nan值时,我得到一个结果,但是,当我不替换nan值时,我得到了损失= nan。

在张量流中处理nan值的最佳方法是什么?如何使用带有nan值的输入数据而不用0替换它们?

1 个答案:

答案 0 :(得分:0)

问题

如何以某种方式告诉我的网络忽略某些输入数据。例如,当输入数据为 nan

答案

这与向输入数据添加掩码非常相似。您希望输入数据通过, nan 变为零,但是您还想通过某种方式向神经网络发出信号,以忽略 nan 的位置并注意一切。

this question about adding a mask中,我回顾了如何将蒙版成功添加到图像中,并给出了非图像问题的代码演示。

  • 首先创建一个掩码,输入中存在数据的地方为1,而 nan 存在的地方为0。
  • 第二,清理将 nan 转换为0或0.5或任何其他值的输入。
  • 第三,将遮罩堆叠到输入上。如果输入是图像,则遮罩将变为另一个颜色通道。

masking question中的代码显示,添加掩码时,神经网络能够很好地学习,而未添加掩码时,则无法很好地学习。