reduce 可以理解為 python 里的 reduce 函數;
tensorflow 中有很多 reduce_ API,其用法完全相同
tf.reduce_max
以這個為例進行說明
def reduce_max(input_tensor, axis=None, keepdims=None, name=None, reduction_indices=None, keep_dims=None): """Computes the maximum of elements across dimensions of a tensor.
求指定維度上的最大值
input_tensor:輸入數據,tensor、array、dataframe 都可以
axis:維度,0 表示 列,1 表示行,-1 表示最后一個維度,可以是標量和列表
keepdims:bool 值,按原維度輸出
reduction_indices:等價於 axis,已廢棄
示例
data = tf.constant([[1, 2], [3, 4], [2, 5]]) print(data.shape) # (3, 2) out1 = tf.reduce_max(data, axis=0) ### 第 0 個維度即 每列最大值 out2 = tf.reduce_max(data, axis=1) ### 第 1 個維度即 每行最大值 out3 = tf.reduce_max(data, axis=0, keepdims=True) ### 保持原維度 out4 = tf.reduce_max(data, reduction_indices=[1]) ### 等價於 axis=1 out5 = tf.reduce_max(data, axis=[0, 1]) ### 多個維度最大值 sess = tf.Session() print(sess.run(out1)) # [3 5] print(sess.run(out2)) # [2 4 5] print(sess.run(out3)) # [[3 5]] print(sess.run(out4)) # [2 4 5] print(sess.run(out5)) # 5
reduce_
tf.reduce_min:最小
tf.reduce_sum:求和
tf.reduce_mean:均值
tf.reduce_all:計算張量在維度上的邏輯和
tf.reduce_any:在張量的維度上計算元素的 邏輯或
參考資料: