人工智能學(xué)習(xí)Pytorch教程Tensor基本操作示例詳解
一、tensor的創(chuàng)建
1.使用tensor
小寫(xiě)字母的tensor接收具體的數(shù)據(jù),可以直接按照numpy的方式輸入數(shù)組。
2.使用Tensor
大寫(xiě)字母的可以接收形狀,此時(shí)會(huì)生成隨機(jī)數(shù),但沒(méi)有任何規(guī)則??梢陨刹煌念?lèi)型。
自動(dòng)生成的數(shù)據(jù)有默認(rèn)類(lèi)型,F(xiàn)loatTensor,可以使用torch.set_default_tensor_type去修改
3.隨機(jī)初始化
rand
:0-1之間均勻采樣
randn
:均值0,方差1的正態(tài)分布隨機(jī)采樣
以上兩種可以直接輸入形狀,即可產(chǎn)生對(duì)應(yīng)形狀的隨機(jī)數(shù)。
randint
:參數(shù)是---起始值、終止值、形狀
同時(shí)每一個(gè)都會(huì)有一個(gè)_like方法,輸入一個(gè)tensor,會(huì)生成對(duì)應(yīng)形狀的新tensor
4.其他數(shù)據(jù)生成
①torch.full
參數(shù)是---形狀,數(shù)據(jù)。如果形狀的位置給一個(gè)空的list,生成的就是標(biāo)量。
②torch.arange
參數(shù)是---起始,終止,步長(zhǎng)。不包含終止值。
③linspace和logspace
參數(shù)是---起始,終止,數(shù)量。包含終止值
④ones, zeros, eye
輸入形狀即可。ones和zeros也有_like方法
⑤torch.randperm
隨機(jī)打散。輸入一個(gè)數(shù)字,會(huì)自動(dòng)生成這個(gè)數(shù)字長(zhǎng)度的,從0開(kāi)始的隨機(jī)排列數(shù)字,可以作為索引。當(dāng)需要對(duì)不同的數(shù)據(jù),使用相同的索引,并且打亂順序時(shí),非常好用。
二、tensor的索引與切片
1.索引與切片使用方法
和python中的索引切片使用方法一致
①index_select
輸入的參數(shù)---維度的位置、要選的內(nèi)容對(duì)應(yīng)的維度的索引。不太好理解,可以看下面的例子。
②...
三個(gè)點(diǎn)相當(dāng)于集成了的連續(xù)的冒號(hào)。
③mask
需要先根據(jù)數(shù)據(jù)生成一個(gè)mask,比如挑選出大于等于0.3的數(shù),此時(shí)會(huì)得到一個(gè)和數(shù)據(jù)相同形狀的,滿(mǎn)足條件位置是1,不滿(mǎn)足條件的位置是0的一個(gè)mask,通過(guò)masked_select可以選出數(shù)據(jù)。
三、tensor維度的變換
1.維度變換
①torch.view
和numpy中的reshape方法一樣。轉(zhuǎn)換的時(shí)候需要考慮到實(shí)際的物理意義。
②squeeze/unsqueeze
squeeze
輸入的參數(shù)---需要減少的維度所在位置
unsqueeze
輸入的參數(shù)---需要增加的維度所在的位置
③expand,repeat
expand
輸入的參數(shù)---希望擴(kuò)展后所形成的維度
repeat
輸入的參數(shù)---各自維度需要重復(fù)的次數(shù)
通常使用expand,因?yàn)椴粫?huì)主動(dòng)復(fù)制數(shù)據(jù)。
④t,transpose,permute
t
:和numpy中的轉(zhuǎn)置一樣,只針對(duì)二維矩陣操作
transpose
:輸入需要交換的維度的位置即可。但想要還原的時(shí)候,需記得轉(zhuǎn)換后的各個(gè)位置的物理意義,根據(jù)實(shí)際意義進(jìn)行再次轉(zhuǎn)換。見(jiàn)下面的例子。
permute
:輸入希望轉(zhuǎn)換成的維度的位置索引即可。相當(dāng)于多次使用transpose
以上就是人工智能學(xué)習(xí)Pytorch教程Tensor基本操作示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Pytorch的tensor基本操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python tkinter圖形界面代碼統(tǒng)計(jì)工具(更新)
這篇文章主要為大家詳細(xì)介紹了python tkinter圖形界面代碼統(tǒng)計(jì)工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Python參數(shù)解析模塊sys、getopt、argparse使用與對(duì)比分析
今天小編就為大家分享一篇關(guān)于Python參數(shù)解析模塊sys、getopt、argparse使用與對(duì)比分析,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04跟老齊學(xué)Python之關(guān)于循環(huán)的小伎倆
不管是while還是for,所發(fā)起的循環(huán),在python編程中是經(jīng)常被用到的。特別是for,一般認(rèn)為,它要比while快,而且也容易寫(xiě)(是否容易,可能因人而異,但是,執(zhí)行時(shí)間快,是的確的),因此在實(shí)踐中,for用的比較多點(diǎn)。2014-10-10scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn)
這篇文章主要介紹了scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01html網(wǎng)頁(yè)調(diào)用后端python代碼的方法實(shí)例
html頁(yè)面中確實(shí)能夠調(diào)用python程序,不過(guò)只能調(diào)“一點(diǎn)點(diǎn)”,下面這篇文章主要給大家介紹了關(guān)于html網(wǎng)頁(yè)調(diào)用后端python代碼的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01