ESa*_*ala 3 python numpy tensorflow
这可能是一个基本问题,但是我找不到解决方案:
我需要计算张量的均值,而忽略任何非有限值。
例如mean([2.0, 3.0, inf, 5.0])应该返回,3.333而不是infnor 2.5。
我已经尝试过,sess.run(tf.reduce_mean([2.0, 3.0, inf, 5.0]))但它会返回inf。
你可以使用的组合is_finite和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)
Run Code Online (Sandbox Code Playgroud)
请注意,这is_finite也会摆脱NaN值。
给出的答案几乎是正确的。问有关忽略非有限值的问题,答案仅忽略无穷值。他们不是同一件事,特别是关于nan。
要实际上忽略任何非有限值(包括nan),请使用以下稍微简单的行:
mymean = tf.reduce_mean(tf.boolean_mask(x, tf.is_finite(x))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2530 次 |
| 最近记录: |