基于几十或上百张校准数据实现浮点模型到定点模型转换的后量化方式,不可避免地会存在一定的精度损失。但经过大量实际生产经验验证,如果能筛选出最优的量化参数组合,地平线的转换工具在大部分情况下,都可以将精度损失保持在1%左右。
本节先介绍了如何正确地进行模型精度分析,其运行的基本流程如下图所示。如果通过评估发现不及预期,则可以参考 模型精度调优 章节的内容尝试调优,实在无法解决可寻求地平线的技术支持。
在进入到此部分介绍前,我们希望您已经了解如何对一个模型进行精度评测。本节介绍的内容是如何使用模型转换的产出物进行推理。
前文提到模型成功转换的产出物中包括以下模型产出物:
*_original_float_model.onnx
*_optimized_float_model.onnx
*_calibrated_model.onnx
*_ptq_model.onnx
*_quantized_model.bc
*.hbm
虽然最后的hbm模型才是将部署到计算平台的模型,考虑到方便在Ubuntu开发机上完成精度评测,我们提供了*_quantized_model.bc完成这个精度评测的过程。quantized模型已经完成了量化,与最后的hbm模型具有一致的精度效果。使用地平线开发库加载模型推理的基本流程如下所示,下方示例代码不仅适用于quantized模型,对original和optimized等onnx模型同样适用(替换模型文件即可),根据模型的输入类型和layout要求准备数据即可。