PyTorch中Tensor的數(shù)據(jù)類型和運算的使用
在使用Tensor時,我們首先要掌握如何使用Tensor來定義不同數(shù)據(jù)類型的變量。Tensor時張量的英文,表示多維矩陣,和numpy對應(yīng),PyTorch中的Tensor可以和numpy的ndarray相互轉(zhuǎn)換,唯一不同的是PyTorch可以在GPU上運行,而numpy的ndarray只能在cpu上運行。
常用的不同數(shù)據(jù)類型的Tensor,有32位的浮點型torch.FloatTensor, 64位浮點型 torch.DoubleTensor, 16位整形torch.ShortTensor, 32位整形torch.IntTensor和64位整形torch.LongTensor
一:Tensor的數(shù)據(jù)類型
1 torch.FloatTensor:用于生成數(shù)據(jù)類型為浮點型的Tensor,傳遞給torch.FloatTensor的參數(shù)可以是一個列表,也可以是一個維度值

2:torch.IntTensor:用于生成數(shù)據(jù)類型為整形的Tensor,傳遞給torch.IntTensor的參數(shù)可以是一個列表,也可以是一個維度值

3:torch.rand:用于生成數(shù)據(jù)類型為浮點型且維度指定的隨機Tensor,和在NumPy中使用的numpy.rand生成隨機數(shù)的方法類似,隨機生成的浮點數(shù)據(jù)在0-1區(qū)間均勻分布

4:torch.randn:用于生成數(shù)據(jù)類型為浮點型且維度指定的隨機Tensor,和在NumPy中使用numpy.randn生成隨機數(shù)的方法類似,隨機生成的浮點數(shù)的取值滿足均值為0,方差為1的正態(tài)分布

5:torch.range:用于生成數(shù)據(jù)類型為浮點型且自定義起始范圍和結(jié)束范圍的Tensor,所以傳遞給torch.range的參數(shù)有三個,分別是范圍的起始值,范圍的結(jié)束值和步長,其中,步長用于指定從起始值到結(jié)束值得每步得數(shù)據(jù)間隔
二:Tensor的運算
通過對Tensor數(shù)據(jù)類型的變量進行運算,來組合一些簡單或者復(fù)雜的算法,常用的Tensor運算如下。
1.torch.abs:將參數(shù)傳遞到torch.abs后返回輸入?yún)?shù)的絕對值作為輸出,輸入?yún)?shù)必須是一個Tensor數(shù)據(jù)類型的變量。
2.torch.add:將參數(shù)傳遞到torch.add后返回輸入?yún)?shù)的求和結(jié)果作為輸出,輸入?yún)?shù)可以全部是Tensor數(shù)據(jù)類型的變量,也可以一個是Tensor數(shù)據(jù)類型的變量,另一個是標量。

3.torch.clamp:對輸入?yún)?shù)按照自定義的范圍進行裁剪,最后將參數(shù)裁剪的結(jié)果作為輸出。所以輸入?yún)?shù)一共有三個,分別是需要進行裁剪的一共三個,分別是需要進行裁剪的Tensor數(shù)據(jù)類型的變量,裁剪的上邊界,下邊界。過程是,讓變量的每個元素分別和上下邊界比較,如果小于下邊界,該元素就被重寫下邊界的值,如果大于上邊界,該元素就被重寫上邊界的值。

4.torch.div:將參數(shù)傳遞到torch.div后返回輸入?yún)?shù)的求商結(jié)果作為輸出,同樣,參與運算的參數(shù)可以全部是Tensor數(shù)據(jù)類型的變量,也可以是Tensor數(shù)據(jù)類型的變量和標量的組合

5.torch.mul:將參數(shù)傳遞到torch.mul后返回輸入?yún)?shù)求積的結(jié)果作為輸出,參與運算的參數(shù)可以全部是Tensor數(shù)據(jù)類型的變量,
也可以是Tensor數(shù)據(jù)類型的變量和標量的組合
6.torch.pow:將參數(shù)傳遞到torch.pow后返回輸入?yún)?shù)的求冪結(jié)果作為輸出,參與運算的參數(shù)可以全部是Tensor數(shù)據(jù)類型的變量,
也可以是Tensor數(shù)據(jù)類型的變量和標量的組合
就是a的b次方

7.torch.mm:將參數(shù)傳遞到torch.mm后返回輸入?yún)?shù)的求積結(jié)果作為輸出,不過這個求積結(jié)果的方式和之前的torch.mul運算方式不一樣,toch.mm運用矩陣之間的乘法法則進行計算,所以被傳入的參數(shù)會被當(dāng)作矩陣進行處理,參數(shù)的維度自然也要滿足矩陣乘法的前提條件,即前一個矩陣的行數(shù)必須和后一個矩陣的列數(shù)相等,否則不能計算。
8.torch.mv:將參數(shù)傳遞到torch.mv后返回輸入?yún)?shù)的求積結(jié)果作為輸出,torch.mv運用矩陣與向量之間的乘法規(guī)則進行計算,被傳入的第一個參數(shù)代表矩陣,第二個參數(shù)代表向量,順序不能顛倒

到此這篇關(guān)于PyTorch中Tensor的數(shù)據(jù)類型和運算的使用的文章就介紹到這了,更多相關(guān)PyTorch Tensor數(shù)據(jù)類型和運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)習(xí)python 的while循環(huán)嵌套
這篇文章主要為大家介紹了python 的while循環(huán)嵌套,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12
Python opencv相機標定實現(xiàn)原理及步驟詳解
這篇文章主要介紹了Python opencv相機標定實現(xiàn)原理及步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
Python使用type動態(tài)創(chuàng)建類操作示例
這篇文章主要介紹了Python使用type動態(tài)創(chuàng)建類操作,結(jié)合實例形式詳細分析了Python使用type動態(tài)創(chuàng)建類的具體原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-02-02
python實現(xiàn)圖書館搶座(自動預(yù)約)功能的示例代碼
這篇文章主要介紹了python實現(xiàn)圖書館搶座(自動預(yù)約)功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Python使用matplotlib繪制Logistic曲線操作示例
這篇文章主要介紹了Python使用matplotlib繪制Logistic曲線操作,結(jié)合實例形式詳細分析了Python基于matplotlib庫繪制Logistic曲線相關(guān)步驟與實現(xiàn)技巧,需要的朋友可以參考下2019-11-11
Python使用CuPy模塊實現(xiàn)高效數(shù)值計算
CuPy是一個基于Python的GPU加速計算庫,它提供了與NumPy相似的接口,可以在GPU上進行高效的數(shù)值計算,本文主要介紹一下CuPy的應(yīng)用場景,并給出一些Python代碼案例,需要的可以參考下2024-02-02

