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


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

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

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

在只提供數組(張量)和axis參數的前提下,  兩者的使用方法和結果一樣,原理一樣,所以這里用numpy做演示。

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

如果軸axis=0,則轉變后的張量的形狀為(N, A, B, C)。

如果軸axis=1,則轉變后的張量的形狀為(A, N, B, C)。

如果軸axis=2,則轉變后的張量的形狀為(A, B, N, C)。其它情況依次類推。

例如:

 

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]進行堆疊......

圖例說明:

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

 

到這里就是我全部的理解,如有錯誤,歡迎指出。

 


免責聲明!

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



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