您好,登錄后才能下訂單哦!
小編給大家分享一下Pytorch進階操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
直接按照指定的dim維度進行合并,要求除了所需要合并的維度之外,其他的維度需要是一樣的
例:此處創建一個和a一樣的tensor,按照某一維度進行stack,就會在堆疊的維度前面,生成一個新的維度,用以進行選擇,比如新生成了一個2維,就可以通過0,1進行選擇。具體是什么意義,取決于實際的問題。
比如兩個班成績單用stack合并,生成的新維度,就可以選擇0或1來選擇這個新維度,從而達到選擇班級的目的。
第一個參數可以是單獨的數字a,意思是每一個拆分出來的部分有a個數據;可以是一個類似list的對象b,意思是把數據按照b里面的方式拆分,拆分成len(b)個tensor。
傳入的第一個參數就是拆成幾個chunk,然后把原來的維度除以這個數量即可。
比如下面的例子,原來維度是[2,32,8],chunk參數傳入2,就需要拆成2個,則2/2=1,最終每一個的維度變為[1,32,8]。
和numpy中的一致。也可以使用torch.add等方法。
注意,*就是元素與元素相乘,而矩陣相乘可以用以下兩種:torch.matmul,@
如果是高維矩陣相乘,計算的其實就是最后的兩個維度的矩陣乘法。
和numpy中一致,可以使用**來計算任意次方。此外.pow()也可以計算。
指數和對數計算也基本一致,log默認是以e為底的。
通常用于當出現梯度過大等情況時,對梯度進行裁剪。通過輸入最大最小值,目標中超出最大值的按最大值來;低于最小值的按最小值來。
注意一點:求哪個維度的范數,哪個維度就會被消掉。
在很多方法中,都可以對dim進行設置。如果不設置,就是把所有數據展開后,求全局的。
注意這里的dim,a的形狀是[4,10],求最大值時,如果設置dim=1,也就是列,個人理解,意思是結果的維度需要是列,那么就是把整行的數值進行計算找最大值,最后返回一個列作為結果。
topk參數:k(前k個最大值),dim(以dim的維度返回結果)
這個方法默認的是返回的最大值,同時會返回它們的索引。
kthvalue參數:k(第k小的值),dim
和Numpy中的一致。如果使用torch.eq方法,返回每個對應位置的結果;如果使用torch.equal方法,返回的是整體對比的結果。
索引行數小于等于表的行數。也就是說,既然要用索引來去找表中的內容,就不能超過表的索引長度。索引在傳入gather方法中的時候,必須要轉換成Long的類型。
舉例如下:
返回值的形狀一定是索引的形狀,因為就是按照索引去取的值。返回值的內容就來自于輸入的input,根據索引獲得的對應的值。
以上是“Pytorch進階操作的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。