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變數之間的轉換就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。