Pytorch中的squeeze()和unsqueeze()函數


在numpy庫中,經常會出現“秩為1的一維數組”(come from 吳恩達的深度學習,目前還沒有搞清楚numpy中如此設計的意圖)。比如:

        

注意這里的a的shape是[3] ,既不是 [1,3] 也不是 [3,1]。這就說明它既不是行向量也不是列向量,只是一個數組。

但是我們可以用squeeze()和unsqueeze()對其進行操作,比如:

       

在對這兩個函數講解之前,我們先統一一下定義:

In  : x.shape
Out: torch.Size( [ a , b , c ] )

這里我們說a是第一個維度(表示第一個維度的數量是a),b是第二個維度(表示第一個維度的數量是b),c是第三個維度(表示第三個維度的數量是c)

簡而言之,unsqueeze(arg)是增添第arg個維度為1,以插入的形式填充。比如:

       

       

相反,squeeze(arg)是刪除第arg個維度(如果當前維度不為1,則不會進行刪除),比如:

       

 


免責聲明!

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



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