Tensorflow的 .reduce_x系列:
reduce系列函数 | 函数释意 |
---|---|
tf.reduce_sum | 对张量某一维度求和 |
tf.reduce_mean | 对张量某一维度求平均值 |
tf.reduce_min | 对张量某一维度求最小值 |
tf.reduce_max | 对张量某一维度求最大值 |
统一格式:
tf.reduce_xxx(input_tensor, reduction_indices=None, keep_dims=False, name=None)
#针对tf.reduce_sum作详细说明
tf.reduce_sum(
input_tensor, #输入张量
axis=None, #在哪一个维度求和[0:最外层括号,-1:最内层括号]默认对所有维求和
keepdims=None, #True/False分别表示是否保持原来维度
name=None, #操作的名称
reduction_indices=None,#axis原来的用法
keep_dims=None #keepdims原来的用法
)
#举个例子
import numpy as np
import tensorflow as tf
a=np.array([[1,2],
[3,4]])
b=tf.Variable(a)
c=tf.reduce_sum(b,axis=0,keepdims=False) #外面括号+降1维
d=tf.reduce_sum(b,axis=1,keepdims=False) #里面括号+降1维
e=tf.reduce_sum(b,axis=0,keepdims=True) #外面括号+不降维
f=tf.reduce_sum(b) #不标明哪一维表示对所有量求和
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(b)) #[[1,2]
[3,4]]
print(sess.run(c)) #[4,6] 1维
print(sess.run(d)) #[3
7]
print(sess.run(e)) #[[4,6]] 2维
print(sess.run(f)) #[10]
#对于二维矩阵axis=0表示对列方向操作、axis=1表示对行方向操作
#对于多维矩阵,可以理解为axis越大,操作越靠括号里面、axis越小,操作越靠外面
tf.reduce_mean()、tf.reduce_max()、tf.reduce_min()以此类推!
注意两个参数:
参数1:axis–对张量哪一维度操作
参数2:keepdims–是否保持原来维度