Tensorflow:对轴 1 中二维张量的非 NaN 求和?

Tensorflow: sum over non-NaNs of 2-dimensional tensor in axis 1?

tensor 为张量,其中 len(tensor.get_shape()) == 2。 怎么做np.nansum(tensor, axis=1)?来自 documentation, nansum "returns the sum of array elements over a given axis treating Not a Numbers (NaNs) as zero".

我可以看到如何使用:

tf.reduce_sum(tf.where(tf.is_nan(tensor), tf.zeros_like(tensor), tensor), axis=1)

但这似乎过于复杂了。有没有更好的方法?

确实没有更好的方法。只需使用问题中包含的代码即可。

事实上,您可以使用 tf.where:

tensor 中的 NaN 替换为任何内容
tf.where(tf.is_nan(tensor), replacement_tensor, tensor)

当然,设置 replacement_tensor = tf.zeros_like(tensor) 会将 NaN 替换为零。