tensorflow四維tensor的形狀以及函數tf.argmax( )的筆記

關於tensorflow裏多維數組(主要是四維)的組織形式以前一直沒弄懂,最近遇到相關問題,算是搞清楚了一些東西,特別記下來,省得本身又遺忘了。數組

三維形式能很簡單的腦補出來三維的形狀,再也不贅述。函數

以前一直糾結四維的時候數據是怎樣填充的。特別是遇到深度學習的時候輸入都是[batch,height,width,channel],這種四維的張量的時候,是怎樣個數據的形狀。學習

先看代碼:code

prediction2 = tf.constant([1,2,3,4,5,6,7,8,9,13,14,14,15,1,6,34,23,7],shape=[2,1,3,3])

生成一個shape爲 [2,1,3,3]的tensor,具體生成的時候按照一個維度一個維度填充的,先填充最「裏面」的維度,這裏指維度3,而後往外依次填充。所以能夠將[1,1,3,3]當作是這樣形狀:blog

而[2,1,3,3]則是兩個這樣的立方體組合而成。生成這樣的一個tensor的時候依次填充[0][0][0][0], [0][0][0][1], [0][0][0][2]......深度學習

依次當求這個tensor在相應維度下的最大值座標就很好理解了,如這句代碼:io

result = tf.argmax(prediction2,3)

將返回在Z軸上最大值的座標,所以立方體第一列即[0][0][0][0], [0][0][0][1], [0][0][0][2],依次爲1,2,3, 最大爲2,返回維度爲2;同理可推出,函數返回值爲:class

[[2,2,2],tensorflow

 [1,0,0]]channel

實際運行結果也相同:

相關文章
相關標籤/搜索