4.1.1. PTQ 原理及步骤¶
环境部署,用于构建模型转换和应用开发的依赖环境,这个动作只需要在您第一次使用工具链时做一遍即可。 具体部署方式请参考 环境部署 章节。
模型训练,指使用 TensorFlow、PyTorch、Caffe 等公开深度学习框架得到可用模型的过程,通过训练得到的可用模型将作为模型转换阶段的输入。 工具链本身不会提供训练相关的库或工具,具体支持的公开学习框架可以参考 浮点模型准备 章节中的说明。
模型转换,本阶段以模型训练得到的浮点模型为输入,通过模型结构优化、模型校准量化等重要步骤, 将浮点模型转换为可以在地瓜机器人计算平台高效运行的混合异构模型。 为了验证异构模型的可用性,工具链还提供了性能分析、精度分析和丰富的异常调试工具与建议。 具体使用请参考 模型量化和编译 、 模型性能分析与调优 、 模型精度分析与调优 章节中的说明。
算子开发,本阶段是一个可选阶段,主要是解决模型存在工具链不支持算子的情况,如果您没有此种情况,可以直接忽略本阶段的处理。 具体使用方式请参考 自定义算子开发 章节中的说明。
嵌入式应用开发,工具链支持了在 X86 仿真环境和真实嵌入式环境的应用开发能力,在不方便使用开发板的情况下, 您在仿真环境完成程序的调试和计算结果的验证。 为了降低仿真验证的代价,工具链提供的仿真库接口与嵌入式接口完全一致,只是采用了不同的编译配置。 具体使用方式请参考 嵌入式应用开发指导 章节中的说明。
下面为您详细介绍 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. 自定义算子开发