tf.reduce_mean()函数、reduction_indices参数介绍和示例以及tf.reduce_sum()、tf.reduce_max()系列函数介绍
1. tf.reduce_mean(input_tensor, axis=None, keep_dims=False, name=None)
释义:指定维度求均值,默认求所有元素均值
- input_tesor,输入张量
- axis,指定轴
- keep_dims,是否降维。设置 True,结果保持输入 Tensor 的形状(维度);设置 False,为降维后的结果;默认 False
- name, 名称
示例1:
import tensorflow as tf
X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y = tf.reduce_mean(X) # 求所有元素均值
Y0 = tf.reduce_mean(X, axis=0) # 求 0 维度均值,即列均值
Y1 = tf.reduce_mean(X, axis=1) # 求 1 维度均值,即行均值
with tf.Session() as sess:
print('所有元素均值:', sess.run(Y))
print('0 维度均值(列均值):', sess.run(Y0))
print('1 维度均值(行均指):', sess.run(Y1))
所有元素均值: 3.5
0 维度均值(列均值): [2.5 3.5 4.5]
1 维度均值(行均指): [2. 5.]
示例2:
X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y0_ = tf.reduce_mean(X, axis=0, keep_dims=True) # 求行均值,保持输入形状
Y1_ = tf.reduce_mean(X, axis=1, keep_dims=True) # 求行均值,保持输入形状
with tf.Session() as sess:
print('0 维度均值(列均值)、保持输入形状:\n', sess.run(Y0_))
print('1 维度均值(行均值)、保持输入形状:\n', sess.run(Y1_))
0 维度均值(列均值)、保持输入形状:
[[2.5 3.5 4.5]]
1 维度均值(行均值)、保持输入形状:
[[2.]
[5.]]
2. 参数 reduction_indices 应用
释义:指定维度,不可与 axis 同时使用,否则报错
示例1:
import tensorflow as tf
X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y0 = tf.reduce_mean(X, reduction_indices=[0]) # 求 0 维度均值,即列均值
Y1 = tf.reduce_mean(X, reduction_indices=[1]) # 求 1 维度均值,即行均值
with tf.Session() as sess:
print('0 维度均值(列均值):', sess.run(Y0))
print('1 维度均值(行均指):', sess.run(Y1))
0 维度均值(列均值): [2.5 3.5 4.5]
1 维度均值(行均指): [2. 5.]
示例2:
X = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.float32, name=None)
Y = tf.reduce_mean(X, reduction_indices=[0, 1]) # 求 0、1 维度均值,此例中即所有元素均值
with tf.Session() as sess:
print('0、1 维度均值:', sess.run(Y))
0、1 维度均值: 3.5
3. 其他 tf.reduce_ 函数
- tf.reduce_sum :计算tensor指定轴方向上的所有元素的累加和;
- tf.reduce_max : 计算tensor指定轴方向上的各个元素的最大值;
- tf.reduce_all : 计算tensor指定轴方向上的各个元素的逻辑和(and运算);
- tf.reduce_any: 计算tensor指定轴方向上的各个元素的逻辑或(or运算)。