人工智能學(xué)習(xí)Pytorch進(jìn)階操作教程
一、合并與分割
1.cat拼接
直接按照指定的dim維度進(jìn)行合并,要求除了所需要合并的維度之外,其他的維度需要是一樣的
2.stack堆疊
例:此處創(chuàng)建一個(gè)和a一樣的tensor,按照某一維度進(jìn)行stack,就會(huì)在堆疊的維度前面,生成一個(gè)新的維度,用以進(jìn)行選擇,比如新生成了一個(gè)2維,就可以通過(guò)0,1進(jìn)行選擇。具體是什么意義,取決于實(shí)際的問(wèn)題。
比如兩個(gè)班成績(jī)單用stack合并,生成的新維度,就可以選擇0或1來(lái)選擇這個(gè)新維度,從而達(dá)到選擇班級(jí)的目的。
3.拆分
①Split按長(zhǎng)度拆分
第一個(gè)參數(shù)可以是單獨(dú)的數(shù)字a,意思是每一個(gè)拆分出來(lái)的部分有a個(gè)數(shù)據(jù);可以是一個(gè)類似list的對(duì)象b,意思是把數(shù)據(jù)按照b里面的方式拆分,拆分成len(b)個(gè)tensor。
②Chunk按數(shù)量拆分
傳入的第一個(gè)參數(shù)就是拆成幾個(gè)chunk,然后把原來(lái)的維度除以這個(gè)數(shù)量即可。
比如下面的例子,原來(lái)維度是[2,32,8],chunk參數(shù)傳入2,就需要拆成2個(gè),則2/2=1,最終每一個(gè)的維度變?yōu)閇1,32,8]。
二、基本運(yùn)算
1.加減乘除
和numpy中的一致。也可以使用torch.add等方法。
2.矩陣相乘
注意,*就是元素與元素相乘,而矩陣相乘可以用以下兩種:torch.matmul,@
如果是高維矩陣相乘,計(jì)算的其實(shí)就是最后的兩個(gè)維度的矩陣乘法。
3.次方計(jì)算
和numpy中一致,可以使用**來(lái)計(jì)算任意次方。此外.pow()也可以計(jì)算。
指數(shù)和對(duì)數(shù)計(jì)算也基本一致,log默認(rèn)是以e為底的。
4. clamp
通常用于當(dāng)出現(xiàn)梯度過(guò)大等情況時(shí),對(duì)梯度進(jìn)行裁剪。通過(guò)輸入最大最小值,目標(biāo)中超出最大值的按最大值來(lái);低于最小值的按最小值來(lái)。
三、屬性統(tǒng)計(jì)
1.求范數(shù)
注意一點(diǎn):求哪個(gè)維度的范數(shù),哪個(gè)維度就會(huì)被消掉。
2.求極值、求和、累乘
3. dim和keepdim
在很多方法中,都可以對(duì)dim進(jìn)行設(shè)置。如果不設(shè)置,就是把所有數(shù)據(jù)展開(kāi)后,求全局的。
注意這里的dim,a的形狀是[4,10],求最大值時(shí),如果設(shè)置dim=1,也就是列,個(gè)人理解,意思是結(jié)果的維度需要是列,那么就是把整行的數(shù)值進(jìn)行計(jì)算找最大值,最后返回一個(gè)列作為結(jié)果。
4.topk和kthvalue
topk參數(shù):k(前k個(gè)最大值),dim(以dim的維度返回結(jié)果)
這個(gè)方法默認(rèn)的是返回的最大值,同時(shí)會(huì)返回它們的索引。
kthvalue參數(shù):k(第k小的值),dim
5.比較運(yùn)算
和Numpy中的一致。如果使用torch.eq方法,返回每個(gè)對(duì)應(yīng)位置的結(jié)果;如果使用torch.equal方法,返回的是整體對(duì)比的結(jié)果。
6.高階操作
①where
②gather
索引行數(shù)小于等于表的行數(shù)。也就是說(shuō),既然要用索引來(lái)去找表中的內(nèi)容,就不能超過(guò)表的索引長(zhǎng)度。索引在傳入gather方法中的時(shí)候,必須要轉(zhuǎn)換成Long的類型。
舉例如下:
返回值的形狀一定是索引的形狀,因?yàn)榫褪前凑账饕ト〉闹?。返回值的?nèi)容就來(lái)自于輸入的input,根據(jù)索引獲得的對(duì)應(yīng)的值。
以上就是人工智能學(xué)習(xí)Pytorch進(jìn)階操作教程的詳細(xì)內(nèi)容,更多關(guān)于PyTorch進(jìn)階的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python 數(shù)據(jù)分析之Beautiful Soup 提取頁(yè)面信息
Beautiful Soup 提供一些簡(jiǎn)單的、python 式的函數(shù)用來(lái)處理導(dǎo)航、搜索、修改分析樹等功能。它是一個(gè)工具箱,通過(guò)解析文檔為用戶提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫出一個(gè)完整的應(yīng)用程序2021-10-10Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)易的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別
這篇文章主要介紹了python如何實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04Python中使用logging和traceback模塊記錄日志和跟蹤異常
今天小編就為大家分享一篇關(guān)于Python中使用logging和traceback模塊記錄日志和跟蹤異常,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04Python中使用logging模塊代替print(logging簡(jiǎn)明指南)
這篇文章主要介紹了Python中使用logging模塊代替print的好處說(shuō)明,主旨是logging模塊簡(jiǎn)明指南,logging模塊的使用方法介紹,需要的朋友可以參考下2014-07-07python調(diào)用cmd命令時(shí)遇到的路徑空格問(wèn)題和中文亂碼的解決
這篇文章主要介紹了python調(diào)用cmd命令時(shí)遇到的路徑空格問(wèn)題和中文亂碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02