基本類型
torch.Tensor是一種包含單一數據類型元素的多維矩陣。測試
Torch定義了七種CPU tensor類型和八種GPU tensor類型:spa
Data tyoe | CPU tensor | GPU tensor |
---|---|---|
32-bit floating point | torch.FloatTensor |
torch.cuda.FloatTensor |
64-bit floating point | torch.DoubleTensor |
torch.cuda.DoubleTensor |
16-bit floating point | N/A | torch.cuda.HalfTensor |
8-bit integer (unsigned) | torch.ByteTensor |
torch.cuda.ByteTensor |
8-bit integer (signed) | torch.CharTensor |
torch.cuda.CharTensor |
16-bit integer (signed) | torch.ShortTensor |
torch.cuda.ShortTensor |
32-bit integer (signed) | torch.IntTensor |
torch.cuda.IntTensor |
64-bit integer (signed) | torch.LongTensor |
torch.cuda.LongTensor |
torch.DoubleTensor(2, 2) 構建一個22 Double類型的張量 torch.ByteTensor(2, 2) 構建一個22 Byte類型的張量 torch.CharTensor(2, 2) 構建一個22 Char類型的張量 torch.ShortTensor(2, 2) 構建一個22 Short類型的張量 torch.IntTensor(2, 2) 構建一個22 Int類型的張量 torch.LongTensor(2, 2) 構建一個22 Long類型的張量code
類型轉換
2.1 CPU和GPU的Tensor之間轉換
從cpu –> gpu,使用data.cuda()便可。 若從gpu –> cpu,則使用data.cpu()。it
2.2 Tensor與Numpy Array之間的轉換
Tensor –> Numpy.ndarray 能夠使用 data.numpy(),其中data的類型爲torch.Tensor。 Numpy.ndarray –> Tensor 能夠使用torch.from_numpy(data),其中data的類型爲numpy.ndarray。table
2.3 Tensor的基本類型轉換(也就是float轉double,轉byte這種。)
爲了方便測試,咱們構建一個新的張量,你要轉變成不一樣的類型只須要根據本身的需求選擇便可class
-
tensor = torch.Tensor(2, 5)model
-
torch.long() 將tensor投射爲long類型 newtensor = tensor.long()數據類型
-
torch.half()將tensor投射爲半精度浮點(16位浮點)類型 newtensor = tensor.half()float
-
torch.int()將該tensor投射爲int類型 newtensor = tensor.int()numpy
-
torch.double()將該tensor投射爲double類型 newtensor = tensor.double()
-
torch.float()將該tensor投射爲float類型 newtensor = tensor.float()
-
torch.char()將該tensor投射爲char類型 newtensor = tensor.char()
-
torch.byte()將該tensor投射爲byte類型 newtensor = tensor.byte()
-
torch.short()將該tensor投射爲short類型 newtensor = tensor.short()
若是當你須要提升精度,好比說想把模型從float變爲double。那麼能夠將要訓練的模型設置爲model = model.double()。此外,還要對全部的張量進行設置:pytorch.set_default_tensor_type('torch.DoubleTensor'),不過double比float要慢不少,要結合實際狀況進行思考。