說明:np ----> numpy tf ----> tensorflownp.stack(arrays, axis=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]進行堆疊...... 方法
圖例說明:
注:轉化後的索引看上面藍色和綠色的線。
到這裏就是我所有的理解,若有錯誤,歡迎指出。