def moments(x, axes, name=None):
with tf.op_scope([x, axes], name, "moments"):
x = tf.convert_to_tensor(x, name="x")
divisor = tf.constant(1.0)
for d in xrange(len(x.get_shape())):
if d in axes:
divisor *= tf.to_float(tf.shape(x)[d])
divisor = tf.inv(divisor, name="divisor")
axes = tf.constant(axes, name="axes")
mean = tf.mul(tf.reduce_sum(x, axes), divisor, name="mean")
var = tf.mul(tf.reduce_sum(tf.square(x - mean), axes),
divisor, name="variance")
return mean, var
评论列表
文章目录