TensorFlow在计算十位数的平均值时忽略了无穷大的值

2024-06-02 07:22:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这可能是一个基本问题,但我找不到解决办法:

我需要计算张量的平均值,忽略任何非有限值。在

例如,mean([2.0, 3.0, inf, 5.0])应该返回3.333,而不是inf也不是2.5。在

我尝试过sess.run(tf.reduce_mean([2.0, 3.0, inf, 5.0])),但它返回inf。在


Tags: runreducetfmeaninf平均值sess解决办法
2条回答

您可以使用^{}boolean_mask的组合。在

import tensorflow as tf

x = tf.constant([2, 3, float('Inf'), 5])
mymean = tf.reduce_mean(tf.boolean_mask(x, tf.is_finite(x)))

sess = tf.Session()
sess.run(mymean)

请注意,is_finite也将删除NaN值。在

给出的答案几乎是正确的。关于忽略非有限值的问题,答案只忽略无限值。它们不是一回事,特别是关于nan。在

若要实际忽略任何非有限值(包括nan),请使用以下稍微简单的行:

mymean = tf.reduce_mean(tf.boolean_mask(x, tf.is_finite(x))

相关问题 更多 >