替换 tensorflow 张量中的 nan 值

新手上路,请多包涵

我正在使用 tensorflow 开发卷积神经网络,但遇到了问题。问题是我通过 tfrecords 读取的输入图像包含一定数量的 nan 值。其原因是图像表示其中具有一些无限值的深度图,并且在将它编码到 tfrecord 中然后解码以将其提供给网络的过程中,这些无限值变成了 nan 值。

现在,由于在我的情况下,在将原始图像编码到 tfrecors 之前替换原始图像中的无限值不是一个选项,所以我可以通过任何方式替换我的图像张量中的 nan 值,作为在我将它提供给网?

原文由 Drakem 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 745
1 个回答

tf.where 和 tf.is_nan 的组合应该有效:

 import tensorflow as tf
with tf.Session():
    has_nans = tf.constant([float('NaN'), 1.])
    print(tf.where(tf.is_nan(has_nans), tf.zeros_like(has_nans), has_nans).eval())

打印(使用 TensorFlow 0.12.1):

 [ 0.  1.]

原文由 Allen Lavoie 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题