tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。
reduce_mean(input_tensor,
axis=None,
keepdims=None,
name=None,
reduction_indices=None,
keep_dims=None)
- 第一个参数input_tensor: 输入的待降维的tensor;
- 第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
- 第三个参数keepdims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
- 第四个参数name: 操作的名称;
- 第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;
- 第六个参数 keep_dims:keepdims参数的别名,已弃用。
以一个维度是2,形状是[4,4]的tensor举例:
import tensorflow as tf
x = [[1,2,3,4],
[5,6,7,8]]
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) # output: 4.5,所有元素求平均值
print(m_0) # output: [3. 4. 5. 6.],每列求平均值
print(m_1) #output: [2.5 6.5],每行求平均值
如果设置保持原来的张量的维度,keepdims=True ,结果:
print(m_a) # output: [[4.5]]
print(m_0) # output: [[3. 4. 5. 6.]]
print(m_1) #output: [[2.5][6.5]]
类似函数还有:
- tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
- tf.reduce_max : 计算tensor指定轴方向上的各个元素的最大值;
- tf.reduce_all : 计算tensor指定轴方向上的各个元素的逻辑和(and运算);
- tf.reduce_any: 计算tensor指定轴方向上的各个元素的逻辑或(or运算);