前言
在2020年以前,OpenVINO(这里以OpenVINO2019年最新的一个版本为例)的Int8量化工具实现在openvino_2019.3.379\deployment_tools\tools\calibration_tool
,因为文档比较难读,所以做个翻译记录在这里,便于使用OpenVINO的量化工具上手。要做Int8量化首先需要将你需要部署的模型Caffe/Pytorch/Tensorflow转化为OpenVINO的IR中间模型。此文档的原因为文档为openvino_2019.3.379\deployment_tools\tools\calibration_tool\README.md
。
Python* Calibaration Tool
介绍
校准工具可量化给定的FP16或FP32模型,并在使模型输入保持原始精度的情况下生成低精度的8位整数(INT8)模型。 要了解INT8有关推理的好处的更多信息,请参考./docs/IE_DG/Int8Inference.md)
。
注意:INT8模型现在只被CPU plugin所支持。有关支持的配置的完整列表,请参见
./docs/IE_DG/supported_plugins/Supported_Devices.md
。
您可以在两种模式下运行校准工具:
- 标准模式以指定量化后的模型相对于原始模型在精度下降不超过一个阈值的方式运行。标准模式在量化过程中利用精度检查工具(
./tools/accuracy_checker/README.md
)来测试精度。使用此模式可获得可以在您的应用程序中直接使用的INT8 IR模型。 - 简化模式生成的IR包含每个层的原始统计信息,而无需任何准确性检查就可以收集这些信息,这意味着带有统计信息的新IR模型的准确性可能会大大降低。 因此,所有层均视为在INT8中执行。 使用此模式可以了解将模型转换为INT8精度的潜在性能提升,并得出有关运行标准模式例程的结论。
校验工具是一个导入了openvino.tools.calibration
包的Python*命令行工具。
系统要求
硬件要求取决于模型。 通常,对于公告模型,RAM内存大小必须不少于16GB
,硬盘必须具有不少于30 GB
的可用空间(独立于操作系统)。 临时目录用于在校准期间缓存输出的网络层。
用法
您可以使用一组适当的配置参数以标准或简化模式运行校准工具。
标准模式
在标准模式下,校准工具的配置方式与准确性检查器相同。
注意:出于一致性的原因,一部分参数的名称和含义与准确性检查器中的名称和含义相同,可以重复使用以运行准确性检查器。
要配置该工具,可以使用以下命令行参数:
校准工具和准确性检查器通用的命令行参数
参数 | 类型 | 描述 |
---|---|---|
-c , --config |
string | Required. 本地配置的yml文件的路径 |
-d , --definitions |
string | Optional. 带有定义信息的yml文件的路径 |
-m , --models |
string | Optional. 模型和权重的前缀路径 |
-s , --source |
string | Optional. 数据集的前缀路径 |
-a , --annotations |
string | Optional. Annotation格式文件路径 |
-e , --extensions |
string | Optional. 扩展文件夹的前缀路径 |
--cpu_extensions_mode , --cpu-extensions-mode |
string | Optional. CPU扩展指令集加速库:avx2 或sse4 |