人工智能入门-TBE基本概念

本文介绍了TBE(Tensor Boost Engine)的基础知识,它是一款基于TVM的华为自研NPU算子开发工具,提供Python API。文章详细阐述了NPU的作用、算子的概念,包括算子类型、名称、张量及其属性如形状、数据排布格式,并解释了轴、权重、偏差、广播和降维等概念。TBE还支持DSL语言,用于简化自定义算子开发。
摘要由CSDN通过智能技术生成

人工智能入门-TBE基本概念

前言

本文介绍了TBE的基本知识、概念以及两种开发场景

TBE基础知识

TBE(Tensor Boost Engine)自定义算子开发工具:

  • 一款华为自研的NPU算子开发工具
  • 在TVM(Tensor Virtual Machine)框架基础上扩展
  • 提供了一套Python API来实施开发活动

TBE基本概念

NPU

NPU(Neural-network Processing Unit),神经网络处理器。

在维基百科中,NPU这个词条被直接指向了“人工智能加速器”,释义是这样的:
“人工智能加速器(英语:AI accelerator)是一类专用于人工智能(特别是人工神经网络、机器视觉、机器学习等)硬件加速的微处理器或计算系统。典型的应用包括机器人学、物联网等数据密集型应用或传感器驱动的任务。”
本文中,NPU可以特指为昇腾910处理器。
昇腾910处理器

算子

  • 算子基本概念
    算子是一个函数空间到函数空间上的映射O:X→X;广义的讲,对任何函数进行某一项操作都可以认为是一个算子。于我们而言,我们所开发的算子是网络模型中涉及到的计算函数。在Caffe中,算子对应层中的计算逻辑,例如:卷积层(Convolution Layer)中的卷积算法,是一个算子;全连接层(Fully-connected Layer, FC layer)中的权值求和过程,是一个算子。
  • 算子举例:
    在网络模型中被用作激活函数的算子:tanh ReLU Sigmoid等
    tanhReLUSigmoid
  • 算子类型(Type):
    算子的type,代表算子的类型,例如卷积算子的类型为Convolution,在一个网络中同一类型的算子可能存在多个。
  • 算子名称(Name):
    算子的名称,用于标识网络中的某个算子,同一网络中算子的名称需要保持唯一。如下图所示conv1,pool1,conv2都是此网络中的算子名称,其中conv1与conv2算子的类型为Convolution,表示分别做一次卷积运算。
    Convolution
  • 张量(Tensor):
    Tensor是TBE算子中的数据,包括输入数据与输出数据,TensorDesc(Tensor描述符)是对输入数据与输出数据的描述,TensorDesc数据结构包含如下属性:
    TensorDesc
    • 形状(Shape):
      张量的形状,以(D0, D1, … ,Dn-1)的形式表示,D0到Dn是任意的正整数。
      如形状(3,4)表示第一维有3个元素,第二维有4个元素,(3,4)表示一个3行4列的矩阵数组。
      在形状的中括号中有多少个数字,就代表这个张量是多少维的张量。形状的第一个元素要看张量最外层的中括号中有几个元素,形状的第二个元素要看张量中从左边开始数第二个中括号中有几个元素,依此类推。例如:
      形状
    • 张量形状的物理含义:
      假设我们有这样一个shape=(4, 20, 20, 3)。
      假设有一些照片,每个像素点都由红/绿/蓝3色组成,即shape里面3的含义,照片的宽和高都是20,也就是20*20=400个像素,总共有4张的照片,这就是shape=(4, 20, 20, 3)的物理含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客不撩妹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值