3. 关键概念

本章节为您提供一些可能会在下方文内经常出现的概念以及一些常用到的背景知识。

  • 原始浮点模型

    指您通过TensorFlow/PyTorch等等DL框架训练得到的可用模型,这个模型的计算精度为float32。

  • 混合异构模型

    是一种适合在地平线计算平台上运行的模型格式,之所以被称为异构模型是因为它能够支持模型同时在ARM CPU和BPU上执行。 由于在BPU上的运算速度会远大于CPU上的速度,因此会尽可能的将算子放在BPU上运算。对于BPU上暂时不支持的算子,则会放在CPU上进行运算。

  • hbm文件

    即Horizon BPU Model,HBDK编译器生成的模型文件,hbm包含BPU指令、模型参数、输入输出描述等信息。

  • 算子

    深度学习算法由计算单元组成,我们称这些计算单元为算子(Operator,也称op)。 算子是一个函数空间到函数空间上的映射,同一模型中算子名称是唯一的,但是同一类型的算子可以存在多个。 如:Conv1、Conv2,是两个算子类型相同的不同算子。

  • 模型转换

    指的是将原始浮点模型或QAT转换得到的onnx模型转换为地平线混合异构模型的过程。

  • 模型量化

    目前工业界最有效的模型优化方法之一,量化是指定点与浮点等数据之间建立一种数据映射关系,使得以较小的精度损失代价获得了推理性能收益,可简单理解为用“低比特”数字表示FP32等数值,如FP32–>INT8可以实现4倍的参数压缩,在压缩内存的同时可以实现更快速的计算。

  • PTQ

    即训练后量化方案,先训练浮点模型,然后使用校准图片计算量化参数,将浮点模型转为量化模型的量化方法。更详细的介绍可参考 PTQ、QAT简介 章节。

  • QAT

    即量化感知训练方案,在浮点训练的时候,就先对浮点模型结构进行干预,使得模型能够感知到量化带来的损失,减少量化损失精度的方案。更详细的介绍可参考 PTQ、QAT简介 章节。

  • 张量

    张量,也称Tensor,具备统一数据类型的多维数组,作为算子计算数据的容器,包含输入输出数据。 张量具体信息的载体,包含张量数据的名称、shape、数据排布、数据类型等内容。

  • 数据排布

    深度学习中,多维数据通过多维数组(张量)进行存储,通用的神经网络特征图通常使用四维数组(即4D)格式进行保存,即以下四个维度:

    • N:Batch数量,如图片的数量。

    • H:Height,图片的高度。

    • W:Width,图片的宽度。

    • C:Channel,图片的通道数。

    但是数据只能线性存储,因此四个维度有对应的顺序,不同的数据排布(format)方式,会显著影响计算性能。 常见的数据存储格式有NCHW和NHWC两种:

    • NCHW:将同一通道的所有像素值按顺序进行存储。

    • NHWC:将不同通道的同一位置的像素值按顺序进行存储。

    如下图所示:

    ../../_images/data_format.png
  • 数据类型

    下文常用到的图片数据类型包括rgb、bgr、gray、yuv444、nv12、featuremap。

    • rgb、bgr和gray都是比较常见的图像格式,每个数值都采用UINT8表示。

    • yuv444也是一种常见的图像格式,它的每个数值都采用UINT8表示。

    • nv12是常见的yuv420图像格式,每个数值都采用UINT8表示。

    • featuremap适用于以上列举格式不满足您需求的情况,此type每个数值采用float32表示。例如雷达和语音等模型处理就常用这个格式。

还有更多针对文档中缩略词的介绍,请您参考 常用缩略语 章节的介绍。