1. 程式人生 > 程式設計 >pytorch實現Tensor變數之間的轉換

pytorch實現Tensor變數之間的轉換

系統預設是torch.FloatTensor型別

data = torch.Tensor(2,3)是一個2*3的張量,型別為FloatTensor

data.cuda()就轉換為GPU的張量型別,torch.cuda.FloatTensor型別

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

在Tensor後加long(),int(),double(),float(),byte()等函式就能將Tensor進行型別轉換type()函式,

data為Tensor資料型別,data.type()為給出data的型別,

如果使用data.type(torch.FloatTensor)則強制轉換為torch.FloatTensor型別張量

(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變數

(6) 分別獲取張量和陣列的尺寸,注意size的使用

torch 張量

獲取張量的尺寸 a.size()

numpy 陣列

獲取陣列的尺寸 b.shape

獲取陣列中元素的個數: b.size (這裡和張量中的屬性的size的含義不同)

(7) 升維和降維的問題

unsqueeze(N)升維到第N維

squeeze(N)降維第N維

需要做如下操作:

x = x.unsqueeze(0) 假如x=(3,1080,1920) 操作後 x = (1,3,1920)

降維也是做同樣的操作

以上這篇pytorch實現Tensor變數之間的轉換就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。