tensor的axes属性解读
tensorflow的tensor形状shape=[batch,height,weight,channel],对应axes=[0,1,2,3]
当axes=[1]时,tensor的形状shape=[batch,1,weight,channel]——对各个channel的按列分别求和
当axes=[2]时,tensor的形状shape=[batch,height,1,channel]——对各个channel的按行分别求和
当axes=[1,2]时,tensor的形状shape=[batch,1,1,channel]——对各个channel的按列跟行分别求和
均值,方差的求解
tf.nn.moments(x, axes, shift=None, name=None, keep_dims=False )
参数:
x:一个Tensor,可以理解为我们输出的数据,形如 [batchsize, height, width, kernels]。
axes:整数数组,用于指定计算均值和方差的轴。如果x是1-D向量且axes=[0] 那么该函数就是计算整个向量的均值与方差。
shift:未在当前实现中使用。
name:用于计算moment的操作范围的名称。
keep_dims:产生与输入具有相同维度的moment,通俗点说就是是否保持维度。
返回:
两个Tensor对象:mean(均值)和variance(方差).
实例
求一张图片各个通道的均值和方差
mean, sigma_sq=tf.nn.moments(image,axes=[1,2],keep_dims=True)