[Pytorch]Pytorch的tensor變量類型轉換


原文:https://blog.csdn.net/hustchenze/article/details/79154139
Pytorch的數據類型為各式各樣的Tensor,Tensor可以理解為高維矩陣。與Numpy中的Array類似。Pytorch中的tensor又包括CPU上的數據類型和GPU上的數據類型,一般GPU上的Tensor是CPU上的Tensor加cuda()函數得到。通過使用Type函數可以查看變量類型。一般系統默認是torch.FloatTensor類型。例如data = torch.Tensor(2,3)是一個2*3的張量,類型為FloatTensor; data.cuda()就轉換為GPU的張量類型,torch.cuda.FloatTensor類型。

下面簡單介紹一下Pytorch中變量之間的相互轉換。

(1)CPU或GPU張量之間的轉換

一般只要在Tensor后加long(), int(), double(),float(),byte()等函數就能將Tensor進行類型轉換;

例如:Torch.LongTensor--->Torch.FloatTensor, 直接使用data.float()即可

還可以使用type()函數,data為Tensor數據類型,data.type()為給出data的類型,如果使用data.type(torch.FloatTensor)則強制轉換為torch.FloatTensor類型張量。

當你不知道要轉換為什么類型時,但需要求a1,a2兩個張量的乘積,可以使用a1.type_as(a2)將a1轉換為a2同類型。

(2)CPU張量 ---->  GPU張量, 使用data.cuda()

(3)GPU張量 ----> CPU張量 使用data.cpu()

(4)Variable變量轉換成普通的Tensor,其實可以理解Variable為一個Wrapper,里頭的data就是Tensor. 如果Var是Variable變量,使用Var.data獲得Tensor變量

(5)Tensor與Numpy Array之間的轉換

Tensor---->Numpy  可以使用 data.numpy(),data為Tensor變量

Numpy ----> Tensor 可以使用torch.from_numpy(data),data為numpy變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM