hb_verifier工具
hb_verifier 是一致性验证工具,支持进行onnx模型之间、onnx模型与hbir模型、hbir模型与hbir模型之间的余弦相似度对比, bc与Hbm模型之间的输出一致性对比。
余弦相似度表示不同阶段量化模型之间的一致性,余弦相似度越接近1,说明对比的两个量化模型的输出越接近。
一致性对比则会打印对比模型的输出一致性信息,包括输出名称、一致性、不一致元素数量、最大绝对误差、最大相对误差。

支持范围
-
Fbc代表浮点hbir模型。
-
Qbc代表定点hbir模型。
| 对比模型 | 对比场景 | 模型是否来自 hb_compile | 输入数据要求 |
| Onnx vs Onnx | 余弦相似度对比 | 不关注 | 一份原始数据 |
| Onnx vs Fbc | 余弦相似度对比 | 不关注 | 一份原始数据 |
| Onnx vs Qbc | 余弦相似度对比 | 是 | 一份原始数据 |
| Onnx vs Qbc | 余弦相似度对比 | 否 | 一份原始数据 一份 runtime 数据 |
| Fbc vs Qbc | 余弦相似度对比 | 是 | 一份原始数据 |
| Fbc vs Qbc | 余弦相似度对比 | 否 | 一份原始数据 一份 runtime 数据 |
| Qbc vs Hbm | 输出一致性对比 | 是 | 一份 runtime 数据 |
| Qbc vs Hbm | 输出一致性对比 | 否 | 一份 runtime 数据 |
使用方式
命令行参数
| 参数名称 | 参数说明 |
-h, --help | 显示帮助信息。 |
--version | 显示版本并退出。 |
-m, --model | 指定模型输入,支持ONNX模型(*.onnx)、HBIR模型(*.bc)文件、HBM模型(*.hbm)文件。 |
-i, --input | 指定推理测试时使用的数据,仅支持*.npy文件。
-i参数传入。注意:
|
-c, --compare_digits | 设置比较推理结果的数值精确度(即比较数值小数点后的位数),若不进行指定则工具会默认比较至小数点后五位。 |
参考使用场景样例
- ONNX模型与ONNX模型之间进行余弦相似度对比。
以模型优化阶段模型 optimized_float_model.onnx 与模型校准阶段模型 calibrated_model.onnx 为例:
- ONNX模型与HBIR模型之间进行余弦相似度对比。
以模型优化阶段模型 optimized_float_model.onnx 与模型量化阶段定点模型 quantized_model.bc 为例:
- HBIR模型与HBM模型之间进行输出一致性对比。
以模型量化阶段定点模型 quantized_model.bc 与模型编译阶段模型 googlenet.hbm为例:
输出内容说明
余弦相似度对比
所对比模型的余弦相似度信息会打印在终端内,如下示例所示:
其中:
-
NodeName代表算子名称。
-
TensorName代表该算子的第一个输出的Tensor名称。
-
ConsineSimilarity代表计算出的余弦相似度。
输出一致性对比
其中:
-
OutputName代表输出名称。
-
Consistency代表该输出是否一致。
-
Mismatched Elements 代表不一致元素数量和占比。
-
Max Abs Diff 代表最大绝对误差。
-
Max Rel Diff 代表最大相对误差。
