标签:10 float64 dtype torch 数据类型 arange 算子 device
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)
标签:10,float64,dtype,torch,数据类型,arange,算子,device 来源: https://blog.csdn.net/qq_43799400/article/details/119175708
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。