1. 程式人生 > 程式設計 >PyTorch中Tensor的資料型別和運算的使用

PyTorch中Tensor的資料型別和運算的使用

在使用Tensor時,我們首先要掌握如何使用Tensor來定義不同資料型別的變數。Tensor時張量的英文,表示多維矩陣,和numpy對應,PyTorch中的Tensor可以和numpy的ndarray相互轉換,唯一不同的是PyTorch可以在GPU上執行,而numpy的ndarray只能在cpu上執行。

常用的不同資料型別的Tensor,有32位的浮點型torch.FloatTensor,64位浮點型 torch.DoubleTensor,16位整形torch.ShortTensor,32位整形torch.IntTensor和64位整形torch.LongTensor

一:Tensor的資料型別

1 torch.FloatTensor:用於生成資料型別為浮點型的Tensor,傳遞給torch.FloatTensor的引數可以是一個列表,也可以是一個維度值

PyTorch中Tensor的資料型別和運算的使用

2:torch.IntTensor:用於生成資料型別為整形的Tensor,傳遞給torch.IntTensor的引數可以是一個列表,也可以是一個維度值

PyTorch中Tensor的資料型別和運算的使用

3:torch.rand:用於生成資料型別為浮點型且維度指定的隨機Tensor,和在NumPy中使用的numpy.rand生成隨機數的方法類似,隨機生成的浮點資料在0-1區間均勻分佈

PyTorch中Tensor的資料型別和運算的使用

4:torch.randn:用於生成資料型別為浮點型且維度指定的隨機Tensor,和在NumPy中使用numpy.randn生成隨機數的方法類似,隨機生成的浮點數的取值滿足均值為0,方差為1的正態分佈

PyTorch中Tensor的資料型別和運算的使用

5:torch.range:用於生成資料型別為浮點型且自定義起始範圍和結束範圍的Tensor,所以傳遞給torch.range的引數有三個,分別是範圍的起始值,範圍的結束值和步長,其中,步長用於指定從起始值到結束值得每步得資料間隔

二:Tensor的運算

通過對Tensor資料型別的變數進行運算,來組合一些簡單或者複雜的演算法,常用的Tensor運算如下。

1.torch.abs:將引數傳遞到torch.abs後返回輸入引數的絕對值作為輸出,輸入引數必須是一個Tensor資料型別的變數。

2.torch.add:將引數傳遞到torch.add後返回輸入引數的求和結果作為輸出,輸入引數可以全部是Tensor資料型別的變數,也可以一個是Tensor資料型別的變數,另一個是標量。

PyTorch中Tensor的資料型別和運算的使用

3.torch.clamp:對輸入引數按照自定義的範圍進行裁剪,最後將引數裁剪的結果作為輸出。所以輸入引數一共有三個,分別是需要進行裁剪的一共三個,分別是需要進行裁剪的Tensor資料型別的變數,裁剪的上邊界,下邊界。過程是,讓變數的每個元素分別和上下邊界比較,如果小於下邊界,該元素就被重寫下邊界的值,如果大於上邊界,該元素就被重寫上邊界的值。

PyTorch中Tensor的資料型別和運算的使用

4.torch.div:將引數傳遞到torch.div後返回輸入引數的求商結果作為輸出,同樣,參與運算的引數可以全部是Tensor資料型別的變數,也可以是Tensor資料型別的變數和標量的組合

PyTorch中Tensor的資料型別和運算的使用

5.torch.mul:將引數傳遞到torch.mul後返回輸入引數求積的結果作為輸出,參與運算的引數可以全部是Tensor資料型別的變數,

也可以是Tensor資料型別的變數和標量的組合

6.torch.pow:將引數傳遞到torch.pow後返回輸入引數的求冪結果作為輸出,參與運算的引數可以全部是Tensor資料型別的變數,

也可以是Tensor資料型別的變數和標量的組合

就是a的b次方

PyTorch中Tensor的資料型別和運算的使用

7.torch.mm:將引數傳遞到torch.mm後返回輸入引數的求積結果作為輸出,不過這個求積結果的方式和之前的torch.mul運算方式不一樣,toch.mm運用矩陣之間的乘法法則進行計算,所以被傳入的引數會被當作矩陣進行處理,引數的維度自然也要滿足矩陣乘法的前提條件,即前一個矩陣的行數必須和後一個矩陣的列數相等,否則不能計算。

8.torch.mv:將引數傳遞到torch.mv後返回輸入引數的求積結果作為輸出,torch.mv運用矩陣與向量之間的乘法規則進行計算,被傳入的第一個引數代表矩陣,第二個引數代表向量,順序不能顛倒

PyTorch中Tensor的資料型別和運算的使用

到此這篇關於PyTorch中Tensor的資料型別和運算的使用的文章就介紹到這了,更多相關PyTorch Tensor資料型別和運算內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!