tensorflow 函数的含义
-
x_mean = tf.reduce_mean(input, axis=(1, 2), keepdims=True)
reduce_mean(input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None)
第一个参数input_tensor: 输入的待降维的tensor;
第二个参数axis: 指定的轴,如果不指定,则计算所有维度的均值;如果提供参数,参数值必须在[-rank(input_tensor),rank(input_tensor)之间,比如是一个二维的矩阵,则参数值就是从[-2,2]
第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会比之前的参数降低1个维度;
第四个参数name: 操作的名称;是一个可选的参数
第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;
import tensorflow as tfx = [[1,2,3],
[1,2,3]]xx = tf.cast(x,tf.float32)
mean_all = tf.reduce_mean(xx, keep_dims=False) 行和列都同时进行运行(1+1+2+2+3+3)/6=2
mean_0 = tf.reduce_mean(xx, axis=0, keep_dims=False) 列即矩阵的高进行运算(1+1)/2=1,(2+2)/2=2,(3+3)/2=3
mean_1 = tf.reduce_mean(xx, axis=1, keep_dims=False) 行即矩阵的宽进行运算(1+2+3)/3=2,(1+2+3)/3=2
with tf.Session() as sess:
m_a,m_0,m_1 = sess.run([mean_all, mean_0, mean_1])由于 keep_dims=False,所以原先由二维矩阵变为一维向量
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运算);