【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)
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ctrl A_ctrl C_ctrl V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值