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