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ù)會被當作矩陣進行處理,參數(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)文章
解決Pycharm無法import自己安裝的第三方module問題
今天小編就為大家分享一篇解決Pycharm無法import自己安裝的第三方module問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python使用tarfile模塊實現(xiàn)免費壓縮解壓
Python自帶的tarfile模塊可以方便讀取tar歸檔文件,厲害的是可以處理使用gzip和bz2壓縮歸檔文件tar.gz和tar.bz2,這篇文章主要介紹了Python使用tarfile模塊實現(xiàn)免費壓縮解壓,需要的朋友可以參考下2024-03-03python3安裝pip3(install pip3 for python 3.x)
這篇文章主要為大家詳細介紹了install pip3 for python 3.x,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Python利用Matplotlib繪圖無法顯示中文字體的解決方案
在很長一段時間里用Python繪圖,matplotlib都不能很好的顯示中文,下面這篇文章主要給大家介紹了關(guān)于Python利用Matplotlib繪圖無法顯示中文字體的解決方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04淺談pyhton學(xué)習(xí)中出現(xiàn)的各種問題(新手必看)
下面小編就為大家?guī)硪黄獪\談pyhton學(xué)習(xí)中出現(xiàn)的各種問題(新手必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05