pytorch常見的Tensor型別詳解

2022-10-04 15:06:31 字數 1382 閱讀 3194

tensor有不同的資料型別,每種程式設計客棧型別分別有對應cpu和gpu版本(halftensor除外)。預設的tensor是floattensor,可通過torch.set_default_tensor_type修改預設tensor型別(如果預設型別為gpu tensor,則所有操作都將在gpu上進行)。

tensor的型別對分析記憶體占用很有幫助,例如,乙個size為(1000,1000,1000)的floattensor,它有1000*1000*1000=10^9個元素,每乙個元素占用32bit/8=4byte記憶體,所以共占用大約4gb記憶體/視訊記憶體。halftensor是專為gpu版本設計的,同樣的元素個數,視訊記憶體占用只有halftensor的一半,所以可以極大緩解gpu視訊記憶體不足的問題,但是由於halftensor所能表示的數值大小和精度有限,所以可能出現溢位等問題。

程式設計客棧 資料型別

cpu tensor

gpu tensor

32 bit 浮點

torch.floattensor

torch.cuda.floattensor

64 bit 浮點

torch.doubletensor

torch.cuda.doubletensor

16 bit 半精度浮點

n/atorch.cuda.halftensor

8 bit 無符號整形(0~255)

torch.bytetensor

torch.cuda.bytetensor

8 bit 有符號整形(-128~127)

torch.chartensor

torch.cuda.chartensor

16 bit 有符號整形

torch.shorttensor

torch.cuda.shorttensor

32 bit 有符號整形

torch.inttensor

torch.cuda.inttensor

64 bit 有符號整形

torch.longtensor

torch.cuda longtensor

各資料型別之間可以互相轉換,type(new_type)是通用的做法,同時還有float、long、half等快捷方法。cpu tensor和gpu tensor之間的互換是通過tensor.cuda和tensor.cpu的方法實現。

如:#設定預設tensor,注意引數是字串

torch.set_default_tensor_type('torch.inttensor')

a=torch.tensor(2,3)

print(a) #a現在是inttensor

本文標題: pytorch常見的tensor型別詳解

本文位址: /jiaoben/python/298475.html

PyTorch常見的優化器

用法pytorch學習率調整策略通過torch.optim.lr scheduler介面實現。torch.optim是乙個實現了各種優化演算法的庫。大部分常用的方法得到支援,並且介面具備足夠的通用性,使得未來能夠整合更加複雜的方法。參考連線 首先需要構建乙個optimizer物件。這個物件能夠保持當...

pytorch 常見函式理解

a torch.tensor 1,2 3,4 a tensor 1.2.3.4.torch.gather a,1,torch.longtensor 0,0 1,0 tensor 1.1.4.3.1代表按照第1維度進行計算 第一維也就是按照行,第一行 0,0 代表,新的tensor的第一行的兩個元素,...

pytorch中常見錯誤總結

錯誤1 在console中輸入import torchvision會報錯 importerror cannot import name pillow version 原因 torchvision和pillow版本不相容,可能pillow版本過高,如pillow 7.0和torchvision 0.3...