跳到主要内容

7.4.1 简介

D-Robotics 算法工具链是基于D-Robotics 处理器研发的算法解决方案,可以帮助您把浮点模型量化为定点模型, 并在D-Robotics 处理器上快速部署自研算法模型。

目前在GPU上训练的模型大部分都是浮点模型,即参数使用的是float类型存储;D-Robotics BPU架构的处理器使用的是 INT8 的计算精度(业内处理器的通用精度),只能运行定点量化模型。从训练出的浮点模型转为定点模型的过程,我们叫做量化,依据是否要对量化后的参数进行调整,我们可以将量化方法分为QAT(Quantification Aware Training)量化感知训练和PTQ(Post-Training Quantization)训练后量化。

D-Robotics 算法工具链主要使用的是训练后量化PTQ方法,只需使用一批校准数据对训练好的浮点模型进行校准, 将训练过的FP32网络直接转换为定点计算的网络,此过程中无需对原始浮点模型进行任何训练,只对几个超参数调整就可完成量化过程, 整个过程简单快速, 目前在端侧和云侧场景已得到广泛应用。

使用注意事项

本章节适用于使用D-Robotics 处理器的开发者,用于介绍D-Robotics 算法工具链的一些使用注意事项。

浮点模型(FP32)注意事项

  • 支持caffe 1.0 版本的caffe浮点模型和ir_version≤7opset10opset11 版本的onnx浮点模型量化成D-Robotics 支持的定点模型;

  • 其他框架训练的浮点模型需要先导出第1点要求符合版本的onnx浮点模型后,才能进行量化;

  • 模型输入维度只支持固定4维 输入NCHW或NHWC(N维度只能为1),例如:1x3x224x224或1x224x224x3, 不支持动态维度及非4维输入;

  • 浮点模型中不要包含有后处理算子 ,例如:nms计算。

模型算子列表说明

  • 目前提供了D-Robotics 处理器可支持的所有Caffe和ONNX算子情况,其他未列出的算子因D-Robotics 处理器 bpu硬件限制暂不支持 。具体算子支持列表,请参考 模型算子支持列表 章节内容。