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 替换为零。
设 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 替换为零。