4.1. 训练后量化(PTQ)¶
地瓜机器人为您提供了训练后量化 PTQ 方案,下面将以以下几个章节内容为您进行其使用方法指导。
PTQ 原理及步骤 章节,从 PTQ 原理、模型准备、模型验证、模型量化&编译、性能分析与调优、精度分析与调优等方面,为您进行使用指导。
PTQ 工具 章节,为您详细介绍算法工具链提供的 PTQ 工具包。
PTQ 示例 章节,为您介绍 horizon_model_convert_sample 模型转换示例包及其使用方法。提供了使用浮点模型转换工具链快速完成浮点模型转换定点模型的示例,同时包括单张推理和精度验证示例。
附录 章节,为您介绍 norm_type 相关参数、相关计算公式的说明与解析,图片缩放裁剪时使用的各个 transformer 的概念、参数说明及示例,常见异常故障现象通用解决建议。
- 4.1.1. PTQ 原理及步骤
- 4.1.1.1. PTQ 转换的流程与步骤
- 4.1.1.2. 算子约束
- 4.1.1.3. 浮点模型准备
- 4.1.1.4. 验证模型
- 4.1.1.5. 校准数据准备
- 4.1.1.6. 模型量化与编译
- 4.1.1.7. 模型性能分析与调优
- 4.1.1.8. 模型精度分析与调优
- 4.1.1.9. 其他模型工具(可选)
- 4.1.1.10. 训练后量化(PTQ)常见问题
- 4.1.1.10.1. 如何理解算子约束中提及的 BPU 加速和 CPU 计算两种形式?
- 4.1.1.10.2. 如何理解模型分段的性能影响?
- 4.1.1.10.3. 如何理解模型尾部部分 BPU 可加速算子运行在 CPU 上?
- 4.1.1.10.4. 是否支持非对称量化?
- 4.1.1.10.5. 如何理解地瓜机器人的 default 校准方式?
- 4.1.1.10.6. 如何理解地瓜机器人的 mix 校准方式?
- 4.1.1.10.7. 如何理解 yaml 文件中的编译器优化等级参数?
- 4.1.1.10.8. 为何 nv12 模型 hb_perf 得出的输入大小和预测库不一致?
- 4.1.1.10.9. 量化模型和上板 bin 模型的输入的数据排布是否一定一致?
- 4.1.1.10.10. 如何编译得到多 batch 模型?
- 4.1.1.10.11. 多输入模型在转换过程中,模型输入顺序发生变化,此种情况正常么?
- 4.1.1.10.12. 如何理解 PTQ 模型转换过程中的主动量化和被动量化?
- 4.1.1.11. 自定义算子开发
- 4.1.2. PTQ 工具文档
- 4.1.2.1. 模型转换过程详解
- 4.1.2.2. hb_mapper 工具
- 4.1.2.3. hb_perf 工具
- 4.1.2.4. vec_diff 工具
- 4.1.2.5. hb_model_info 工具
- 4.1.2.6. hb_pack 工具
- 4.1.2.7. hb_verifier 工具
- 4.1.2.8. hb_model_modifier 工具
- 4.1.2.9. hb_custom_op 工具
- 4.1.2.10. hb_eval_preprocess 工具
- 4.1.2.11. HB_ONNXRuntime 推理库
- 4.1.2.12. 精度 debug 工具
- 4.1.3. PTQ 模型转换示例手册
- 4.1.3.1. 发布物介绍
- 4.1.3.2. 常见算法模型示例
- 4.1.3.2.1. 位置路径
- 4.1.3.2.2. 如何准备数据集
- 4.1.3.2.3. 如何准备模型
- 4.1.3.2.3.1. Fcos_efficientnetb0
- 4.1.3.2.3.2. Fcos_efficientnetb1
- 4.1.3.2.3.3. Fcos_efficientnetb2
- 4.1.3.2.3.4. MobileNetv1/v2
- 4.1.3.2.3.5. GoogleNet
- 4.1.3.2.3.6. ResNet18
- 4.1.3.2.3.7. Mobilenet_onnx
- 4.1.3.2.3.8. EfficientNet_Lite0/1/2/3/4
- 4.1.3.2.3.9. YOLOv2_Darknet19
- 4.1.3.2.3.10. YOLOv3_Darknet53
- 4.1.3.2.3.11. YOLOv5s
- 4.1.3.2.3.12. SSD_MobileNetv1
- 4.1.3.2.3.13. EfficientDetd0
- 4.1.3.2.3.14. CenterNet_Resnet50
- 4.1.3.2.3.15. Fcos_efficientnetb0
- 4.1.3.2.3.16. UNet_mobilenet
- 4.1.3.2.3.17. DeeplabV3plus_efficientnetb0
- 4.1.3.2.3.18. Fastscnn_efficientnetb0
- 4.1.3.2.4. 算法模型示例的使用演示
- 4.1.3.2.5. 常见问题
- 4.1.3.3. 其他算法模型示例
- 4.1.4. 附录
- 4.1.4.1. norm_type 配置说明
- 4.1.4.2. 图片处理 transformer 说明
- 4.1.4.2.1. AddTransformer
- 4.1.4.2.2. MeanTransformer
- 4.1.4.2.3. ScaleTransformer
- 4.1.4.2.4. NormalizeTransformer
- 4.1.4.2.5. TransposeTransformer
- 4.1.4.2.6. HWC2CHWTransformer
- 4.1.4.2.7. CHW2HWCTransformer
- 4.1.4.2.8. CenterCropTransformer
- 4.1.4.2.9. PILCenterCropTransformer
- 4.1.4.2.10. LongSideCropTransformer
- 4.1.4.2.11. PadResizeTransformer
- 4.1.4.2.12. ResizeTransformer
- 4.1.4.2.13. PILResizeTransformer
- 4.1.4.2.14. ShortLongResizeTransformer
- 4.1.4.2.15. PadTransformer
- 4.1.4.2.16. ShortSideResizeTransformer
- 4.1.4.2.17. PaddedCenterCropTransformer
- 4.1.4.2.18. BGR2RGBTransformer
- 4.1.4.2.19. RGB2BGRTransformer
- 4.1.4.2.20. RGB2GRAYTransformer
- 4.1.4.2.21. BGR2GRAYTransformer
- 4.1.4.2.22. RGB2GRAY_128Transformer
- 4.1.4.2.23. RGB2YUV444Transformer
- 4.1.4.2.24. BGR2YUV444Transformer
- 4.1.4.2.25. BGR2YUV444_128Transformer
- 4.1.4.2.26. RGB2YUV444_128Transformer
- 4.1.4.2.27. BGR2YUVBT601VIDEOTransformer
- 4.1.4.2.28. RGB2YUVBT601VIDEOTransformer
- 4.1.4.2.29. YUVTransformer
- 4.1.4.2.30. ReduceChannelTransformer
- 4.1.4.2.31. BGR2NV12Transformer
- 4.1.4.2.32. RGB2NV12Transformer
- 4.1.4.2.33. NV12ToYUV444Transformer
- 4.1.4.2.34. WarpAffineTransformer
- 4.1.4.2.35. F32ToS8Transformer
- 4.1.4.2.36. F32ToU8Transformer
- 4.1.4.3. 常见故障处理