pytorch學習(三) Tensor型別

2021-09-25 15:00:22 字數 1449 閱讀 4759

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 ...