Tensorflow笔记: reduce_mean 函数

tensorflow reduce_mean

Posted by alovn on April 20, 2019

函数作用

tf.reduce_mean(input_tensor, axis=None, keepdims=False, name=None, reduction_indices=None) 作用:沿着张量不同的数轴(维度)进行计算平均值。

由于输出tensor的维度比原tensor的低,这类操作也叫降维。

axis参数

  1. axis参数缺省值为None, 表示对所有元素求平均值
  2. axis=0, 按列降维,求每列的平均值。表示对第一维度(行)减少,减少行的方法是对所有列求平均值,即在行上压缩减少为一行。

     246
     222
    计算结果(2+2)/2=2(4+2)/2=3(6+2)/2=4
  3. axis=1, 按行降维,求每行的平均值。表示对第二纬度(列)减少,减少列的方法是对所有的行求平均值,在列上压缩减少为一行。

       计算结果
    246(2+4+6)/3=4
    222(2+2+2)/3=2

keepdims参数

是否要保持维度,若值为True,可多行输出平均值。

类似函数

  1. tf.reduce_max() //最大值
  2. tf.reduce_min() //最小值
  3. tf.reduce_sum() //和
  4. tf.reduce_prod() //乘积
  5. tf.reduce_all() //逻辑「与」
  6. tf.reduce_any() //逻辑「或」

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
import tensorflow as tf

a = tf.constant([[2,4,6],[2,2,2]])

with tf.Session() as sess:
    print sess.run(tf.reduce_mean(a, keepdims=False)) //3
    print sess.run(tf.reduce_mean(a, axis=0, keepdims=False)) //[2, 3, 4]
    print sess.run(tf.reduce_mean(a, axis=1, keepdims=False)) //[4, 2]

    //keepdims=True
    print sess.run(tf.reduce_mean(a, keepdims=True)) //[[3]]
    print sess.run(tf.reduce_mean(a, axis=0, keepdims=True)) //[[2, 3, 4]]
    print sess.run(tf.reduce_mean(a, axis=1, keepdims=True)) //[[4], [2]]