reduce_mean(input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
- 第一個參數input_tensor: 輸入的待降維的tensor;
- 第二個參數axis: 指定的軸,如果不指定,則計算所有元素的均值;
- 第三個參數keep_dims:是否降維度,設置為True,輸出的結果保持輸入tensor的形狀,設置為False,輸出結果會降低維度;
- 第四個參數name: 操作的名稱;
- 第五個參數 reduction_indices:在以前版本中用來指定軸,已棄用;
以一個維度是2,形狀是[3,3]的tensor舉例:
import tensorflow as tf
x = [[1,2,3],
[1,2,3]]
xx = tf.cast(x,tf.float32)
mean_all = tf.reduce_mean(xx, keep_dims=False)
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False)
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False)
with tf.Session() as sess:
m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])
print m_a # output: 2.0
print m_0 # output: [ 1. 2. 3.]
print m_1 #output: [ 2. 2.]
如果設置保持原來的張量的維度,keep_dims=True ,結果:
print m_a # output: [[ 2.]]
print m_0 # output: [[ 1. 2. 3.]]
print m_1 #output: [[ 2.], [ 2.]]
類似函數還有:
- tf.reduce_sum :計算tensor指定軸方向上的所有元素的累加和;
- tf.reduce_max : 計算tensor指定軸方向上的各個元素的最大值;
- tf.reduce_all : 計算tensor指定軸方向上的各個元素的邏輯和(and運算);
- tf.reduce_any: 計算tensor指定軸方向上的各個元素的邏輯或(or運算);