pytorch算子torch.arange在CPU GPU NPU中支持数据类型格式

目录
  • 正文
  • 一、 torch.arange() 和 torch.range() 的用法
  • 二、 torch.arange 支持的数据类型格式

正文

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算子支持数据类型格式的资料请关注我们其它相关文章!

(0)

相关推荐

  • Pytorch 实现sobel算子的卷积操作详解

    卷积在pytorch中有两种实现,一种是torch.nn.Conv2d(),一种是torch.nn.functional.conv2d(),这两种方式本质都是执行卷积操作,对输入的要求也是一样的,首先需要输入的是一个torch.autograd.Variable()的类型,大小是(batch,channel, H,W),其中batch表示输入的一批数据的数目,channel表示输入的通道数. 一般一张彩色的图片是3,灰度图片是1,而卷积网络过程中的通道数比较大,会出现几十到几百的通道数.H和W表

  • Pytorch-mlu 实现添加逐层算子方法详解

    目录 1.注册算子 2.算子分发 3.修改 OpMethods 基类 4.下发算子 5.添加 wrapper 6.添加 wrapper 7.算子测试 本教程分享了在寒武纪设备上 pytorch-mlu 中添加逐层算子的方法. pytorch-mlu 逐层模式中算子间数据传递和存储的基本单元是 tensor.pytorch-mlu 根据 tensor 中的 device 属性值将算子分发到不同设备.以 abs() 算子为例,在 dispatch 阶段会根据 input_tensor 的设备属性值将

  • Pytorch实现常用乘法算子TensorRT的示例代码

    目录 1.乘法运算总览 2.乘法算子实现 2.1矩阵乘算子实现 2.2点乘算子实现 本文介绍一下 Pytorch 中常用乘法的 TensorRT 实现. pytorch 用于训练,TensorRT 用于推理是很多 AI 应用开发的标配.大家往往更加熟悉 pytorch 的算子,而不太熟悉 TensorRT 的算子,这里拿比较常用的乘法运算在两种框架下的实现做一个对比,可能会有更加直观一些的认识. 1.乘法运算总览 先把 pytorch 中的一些常用的乘法运算进行一个总览: torch.mm:用于

  • pytorch算子torch.arange在CPU GPU NPU中支持数据类型格式

    目录 正文 一. torch.arange() 和 torch.range() 的用法 二. torch.arange 支持的数据类型格式 正文 CPU(Central Processing Unit):中央处理器 GPU(Graphics Processing Unit):图形处理器 NPU(Neural Network Processing Unit):神经网络处理器,是基于神经网络算法与加速的新型处理器总称. 一. torch.arange() 和 torch.range() 的用法 py

  • pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换

    1, 创建pytorch 的Tensor张量: torch.rand((3,224,224)) #创建随机值的三维张量,大小为(3,224,224) torch.Tensor([3,2]) #创建张量,[3,2] 2, cpu上的tensor和GPU即pytorch创建的tensor的相互转化 b = a.cpu() # GPU → CPU a = b.cuda() #CPU → GPU 3, tensor和numpy的转化 b = a.numpy() # tensor转化为 numpy数组 a

  • CPU,GPU,DPU,TPU,NPU,BPU等处理器的性能及概念

    目录 1.CPU 2.GPU 3.TPU 4.NPU 5.ASIC 6.BPU(Brain Processing Unit,大脑处理器) 7. DPU(Deep learning Processing Unit, 即深度学习处理器) 1.CPU CPU( Central Processing Unit, 中央处理器)就是机器的"大脑",也是布局谋略.发号施令.控制行动的"总司令官". CPU的结构主要包括运算器(ALU, Arithmetic and Logic U

  • 用Pytorch训练CNN(数据集MNIST,使用GPU的方法)

    听说pytorch使用比TensorFlow简单,加之pytorch现已支持windows,所以今天装了pytorch玩玩,第一件事还是写了个简单的CNN在MNIST上实验,初步体验的确比TensorFlow方便. 参考代码(在莫烦python的教程代码基础上修改)如下: import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import tor

  • pytorch查看torch.Tensor和model是否在CUDA上的实例

    今天训练faster R-CNN时,发现之前跑的很好的程序(是指在运行程序过程中,显卡利用率能够一直维持在70%以上),今天看的时候,显卡利用率很低,所以在想是不是我的训练数据torch.Tensor或者模型model没有加载到GPU上训练,于是查找如何查看tensor和model所在设备的命令. import torch import torchvision.models as models model=models.vgg11(pretrained=False) print(next(mod

  • Pytorch 搭建分类回归神经网络并用GPU进行加速的例子

    分类网络 import torch import torch.nn.functional as F from torch.autograd import Variable import matplotlib.pyplot as plt # 构造数据 n_data = torch.ones(100, 2) x0 = torch.normal(3*n_data, 1) x1 = torch.normal(-3*n_data, 1) # 标记为y0=0,y1=1两类标签 y0 = torch.zero

  • PyTorch的torch.cat用法

    1. 字面理解: torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 2. 例子理解 >>> import torch >>> A=torch.ones(2,3) #2x3的张量(矩阵) >>> A tensor([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> B=2*torch.ones(4,3)#4x3的张量(矩阵) >>>

  • PyTorch之torch.randn()如何创建正态分布随机数

    目录 torch.randn()如何创建正态分布随机数 torch之随机数生成方式 1. 均匀分布 2. 标准正态分布 3.离散正态分布 4.线性间距向量 总结 torch.randn()如何创建正态分布随机数 torch.randn(*size)从均值为0,方差为1的正态分布中获取随机数 [sample] In [1]: import torch In [2]: torch.randn(3) Out[2]: tensor([1.7896, 0.7974, 0.7416]) In [3]: to

  • 将Pytorch模型从CPU转换成GPU的实现方法

    最近将Pytorch程序迁移到GPU上去的一些工作和思考 环境:Ubuntu 16.04.3 Python版本:3.5.2 Pytorch版本:0.4.0 0. 序言 大家知道,在深度学习中使用GPU来对模型进行训练是可以通过并行化其计算来提高运行效率,这里就不多谈了. 最近申请到了实验室的服务器来跑程序,成功将我简陋的程序改成了"高大上"GPU版本. 看到网上总体来说少了很多介绍,这里决定将我的一些思考和工作记录下来. 1. 如何进行迁移 由于我使用的是Pytorch写的模型,网上给

  • pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作

    问题描述 有时在加载已训练好的模型时,会出现 out of memory 的错误提示,但仔细检测使用的GPU卡并没有再用且内存也没有超出. 经查阅发现原来是训练模型时使用的GPU卡和加载时使用的GPU卡不一样导致的.个人感觉,因为pytorch的模型中是会记录有GPU信息的,所以有时使用不同的GPU加载时会报错. 解决方法 gpu之间的相互转换.即,将训练时的gpu卡转换为加载时的gpu卡. torch.load('modelparameters.pth', map_location={'cud

随机推荐