Tensorflow中 tf.reduce_mean()方法的用法(转载+修订)

原作:-牧野- 
原文:https://blog.csdn.net/dcrmg/article/details/79797826 
修订:拼命先生 (感谢原创牧野,是它的这篇博文让我对reduce_mean有了清晰的理解,考虑到python和Tensorflow的版本更新,有些内容有了变化,因此在转载的基础上做了修订!!)

tf.reduce_mean()方法用于计算张量tensor沿着某一维度的平均值,主要用于降维或者计算tensor(图像)的平均值。

reduce_mean(input_tensor,
                axis=None,
                keepdims=False,
                name=None,
                reduction_indices=None)

# 第一个参数 input_tensor: 输入待降维的tensor;
# 第二个参数 axis: 指定的维,如果不指定,则计算所有元素的均值;
# 第三个参数 keepdims:是否保持原有张量的维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
# 第四个参数 name: 操作的名称;
# 第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;

以一个维度是2,形状是[2,3]的tensor举例,如果设置为不保持原来张量的维度,keepdims=False(keepdims的取值,如果不传入这个参数,则系统默认为False),结果:

import tensorflow as tf
 
x = [[1,2,3],
     [1,2,3]]
 
xx = tf.cast(x,tf.float32)
 
mean_all = tf.reduce_mean(xx, keepdims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keepdims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keepdims=False)
 
 
with tf.Session() as sess:
    m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
 
print(m_a)
print(m_0)
print(m_1)


###  输出结果为 ###
# 2.0
# [ 1.  2.  3.]
# [ 2.  2.]

如果设置保持原来张量的维度,keepdims=True ,结果:

### 保持原有张量的维度,设置keepdims=True,输出结果为 ###
# [[2.]]
# [[1. 2. 3.]]
# [[2.] [2.]]

类似的方法还有:

tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
tf.reduce_max  :  计算tensor指定轴方向上的各个元素的最大值;
tf.reduce_all :  计算tensor指定轴方向上的各个元素的逻辑和(and运算);
tf.reduce_any:  计算tensor指定轴方向上的各个元素的逻辑或(or运算);
 

你可能感兴趣的:(TensorFlow)