reduce的意思 是降维,因为经过这些运算,输入的tensor可以降低1个维度或多个维度。
reduce_sum() 用于计算张量tensor沿着某一维度的和,在求和后降维。
举个 2 * 3 * 4 的tensor 作例子:
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]],
[[ 13 14 15 16]
[ 17 18 19 20]
[ 21 22 23 24]]]
画出来是这样的
为了方便,我们把数字都去掉,再上色。最终是:
2层(方块黄色方向,维度0,axis=0),
3行(方块蓝色方向,维度1,axis=1),
4列(方块红色方向,维度2,axis=2)
tf.reduce_sum(tensor, axis=0), # axis=0 ,按第一个维度求和。
计算过程是沿着axis=0 方向,将数据相加,维度从(2,3,4)到(3,4)。降低了一个维度。
结果:
shape是(3,4)
[[1+13 2+14 3+15 4+16]
[5+17 6+18 7+19 8+20]
[9+21 10+22 11+23 12+24]]
依次类推,如果axis=1,那么求和结果:
shape是(2,4)
[[ 1 + 5 + 9 2 + 6+10 3 + 7+11 4 + 8+12]
[13+17+21 14+18+22 15+19+23 16+20+24]]
如果axis=2,那么求和结果:
shape是(2,3)
[[1+2+3+4 5+6+7+8 9+10+11+12]
[13+14+15+16 17+18+19+20 1+22+23+24]]
如果axis 省略,那么求和结果:
shape是(1,)
tf.reduce_mean()函数 也近似,不再作图。