關於tensorflow中維度的問題


一直對TF中tensor的reduce操作涉及的axis(reduction_indices)計算一知半解,這里系統總結一下,避免繼續走彎路:

1.本質上來說,reduce_xxx都是降維操作,沿某個axis進行降維,不管是求和還是取平均值,總之需要消滅這一維度。

2.默認axis值為none,也即是降為0維,變為一個數值了

3.假定Tensor T的維度dim = k,那么axis = k-1代表基於最里面的維度進行計算,axis = 0 代表基於最外層的維度進行計算

 

給出一個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說明是按第一個維度(最外層的2)進行求和,也就是說把

[[ 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是3*4(之前tensor是2*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 21+22+23+24]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM