np.stack() 與 tf.stack() 的簡單理解

說明:np ----> numpy       tf ----> tensorflownp.stack(arraysaxis=0)數組

np.stack(arrays, axis=0) ---- 一樣也適用於tf.stack()函數

numpy 和 tensorflow 都有 stack() 函數,該函數主要是用來提高維度。spa

在只提供數組(張量)和axis參數的前提下,  二者的使用方法和結果同樣,原理同樣,因此這裏用numpy作演示。3d

假設要轉變的張量數組arrays的長度爲N,其中的每一個張量數組的形狀爲(A, B, C)。blog

若是軸axis=0,則轉變後的張量的形狀爲(N, A, B, C)。索引

若是軸axis=1,則轉變後的張量的形狀爲(A, N, B, C)。原理

若是軸axis=2,則轉變後的張量的形狀爲(A, B, N, C)。其它狀況依次類推。tensorflow

例如:numpy

 

np.stack(arrays, axis=0)則表示arrays[0], arrays[1], arrays[2]進行堆疊,因此結果與原始數組同樣。

np.stack(arrays, axis=1)則表示arrays[0][0], arrays[1][0]和arrays[2][0]進行堆疊,而後是arrays[0][1],arrays[1][1]與arrays[2][1]進行堆疊。

np.stack(arrays, axis=2)則表示arrays[0][0][0],arrays[1][0][0]和arrays[2][0][0]進行堆疊,而後是arrays[0][0][1],arrays[1][0][1]與arrays[2][0][1]進行堆疊,接着爲arrays[0][0][2],arrays[1][0][2]與arrays[2][0][2]進行堆疊...... 方法

圖例說明:

注:轉化後的索引看上面藍色和綠色的線。

 

到這裏就是我所有的理解,若有錯誤,歡迎指出。

相關文章
相關標籤/搜索