tensor有不同的資料型別,如下表所示,每種型別分別有cpu版本和gpu版本(halftensor除外)。預設的tensor型別是floattensor,可通過t.set_default_tensor_type修改預設tensor型別(如果預設型別為gpu tensor,則所有的操作都在gpu上進行)。
資料型別
cpu tensor
gpu tensor
32bit浮點
torch.floattensor
torch.cuda.floattensor
64bit浮點
torch.doubletensor
torch.cuda.doubletensor
16bit半精度浮點
n/atorch.cuda.halftensor
8bit無符號整形(0~255)
torch.bytetensor
torch.cuda.bytetensor
8bit有符號整形(-128~127)
torch.chartensor
torch.cuda.chartensor
16bit有符號整形
torch.shorttensor
torch.cuda.shorttensor
32bit有符號整形
torch.inttensor
torch.cuda.inttensor
64bit有符號整形
torch.longtensor
torch.cuda.longtensor
各種資料型別可以相互轉換,type(new_type)是通用的做法,同時還有float、long、half等快捷方法。cpu tensor和gpu tensor之間的相互轉換通過tensor.cuda和tensor.cpu的方法實現。tensor還有乙個new的方法,用法與t.tensor一樣,會呼叫該tensor對應型別的建構函式,生成與當前tensor型別一致的tensor。
例:
in:
#設定預設引數,注意引數是字串
import torch as t
t.set_default_tensor_type(
'torch.floattensor'
)in: a = t.inttensor(2,3)a
out: tensor([[
-700706908
,2046,0
],[0
,0,0
]], dtype=torch.int32)
in:#將a轉換為floattensor,等價於b=a.type(t.floattensor)
b = a.
float()
bout: tensor([[
-700706880.,
2046.,
0.],
[0.,
0.,0
.]])
pytorch 學習筆記(三)
import torch from torchvision import transforms from torchvision import datasets from torch.utils.data import dataloader import torch.nn.functional as...
pytorch學習(三)啟用函式
啟用函式 activity function 存在的原因是我們日常解決的實際問題大部分不是線性可分的,而是非線性的,此時就需要啟用函式來處理這一分類問題。y wx b是線性分類問題,啟用函式則通過y af wx b 將線性問題轉換為非線性問題。常用的啟用函式有relu函式 sigmoid函式 tan...
三 PyTorch 深度學習 反向傳播
import torch x data 1.0 2.0 3.0 y data 2.0 4.0 6.0 w torch.tensor 1.0 w的初值為1.0 w.requires grad true 需要計算梯度 defforward x return x w w是乙個tensor defloss ...