tensorflow里面集成了許多基於統計的數學函數,類似於reduce_sum,reduce_mean,reduce_min,reduce_max,等,根據字面意思分別是求和,求平均,求最大,求最小等
reduce_sum() 就是求和,由於求和的對象是tensor,所以是沿着tensor的某些維度求和。reduction_indices是指沿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]]]
如果計算tf.reduce_sum(tensor, axis=0),axis=0說明是按第一個維度進行求和,也就是說把
[[ 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)抹去,求和結束得到的tensor_ans是3*4(之前tensor是2*3*4)。顯然tensor_ans的元素分別是1+13;2+14;3+15……;12+24。即:
[[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 21+22+23+24]]