pytorch算子torch.arange在CPU GPU NPU中支持數據類型格式
正文
CPU(Central Processing Unit):中央處理器 GPU(Graphics Processing Unit):圖形處理器 NPU(Neural Network Processing Unit):神經網絡處理器,是基於神經網絡算法與加速的新型處理器總稱。
一、 torch.arange() 和 torch.range() 的用法
pytorch官網介紹:
torch.arange(start,end,step) 用於產生一個從start開始,到end結束(註意不包括end),步長為step的Tensor, 並且可以設置 Tensor 的 device 和 dtype
torch.arange 與 torch.range 功能及其相似,不同之處在於 torch.range(start,end,step) 生成的 Tensor, 包括 end
如:
a=torch.arange(1, 7, 2) b=torch.range(1, 7, 2) print(a) print(b)
輸出:
tensor([1, 3, 5]) tensor([1., 3., 5., 7.])
但是建議使用 torch.arange ,因為 torch.range 即將被pytorch 移除:
二、 torch.arange 支持的數據類型格式
隻考慮 float 類型
cpu 不支持 float16,支持 float32 和 float64 cpu 支持 float16 、float32 和 float64 npu 不支持 float16 和 float64 ,隻支持 float32
事實上 npu 基本不支持所有的 64位類型,包括 int64 和 float64,與算子無關。當然cpu 是支持 16位數據類型的,隻是 torch.arange 不支持而已。
驗證代碼如下:
import torch # CPU a=torch.arange(1, 10, 2,device="cpu",dtype=torch.float16) # 不可以 a=torch.arange(1, 10, 2,device="cpu",dtype=torch.float32) # 可以 a=torch.arange(1, 10, 2,device="cpu",dtype=torch.float64) # 可以 # GPU a=torch.arange(1, 10, 2, device="cuda:0",dtype=torch.float16) # 可以 a=torch.arange(1, 10, 2, device="cuda:0",dtype=torch.float32) # 可以 a=torch.arange(1, 10, 2, device="cuda:0",dtype=torch.float64) # 可以 # NPU a=torch.arange(1, 10, 2, device="npu:0",dtype=torch.float16) # 不可以 a=torch.arange(1, 10, 2, device="npu:0",dtype=torch.float32) # 可以 a=torch.arange(1, 10, 2, device="npu:0",dtype=torch.float64) # 不可以 print(a)
以上就是pytorch算子torch.arange在CPU GPU NPU中支持數據類型格式的詳細內容,更多關於pytorch算子支持數據類型格式的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- pytorch教程之Tensor的值及操作使用學習
- 解決numpy和torch數據類型轉化的問題
- PyTorch中的CUDA的操作方法
- Python深度學習之Pytorch初步使用
- Pytorch1.5.1版本安裝的方法步驟