6.2.4. vec_diff工具¶
vec_diff
工具旨在帮助您定位精度异常问题。当出现精度异常时,可能有几种原因:
校准或者量化导致某一layer的输出存在误差,经过可能的误差放大,导致最终结果差异较大。
模型转换工具的某一步存在未知问题,浮点模型到定点模型转换过程中,经过了几次优化和变换,这些变换可能会存在问题,导致异常。
软件bug:在应该保证数值一致的地方,因为软件bug,导致误差。
为了定位这些问题,我们开发了向量比较工具。使用向量比较工具,可以比较不同阶段模型的卷积层输出差异。
6.2.4.1. 使用方式¶
vec_diff
工具,可以比较不同阶段模型的输出feature的差异,所以,第一步,需要得到模型的 infer
输出结果。
对于模型转换工具(hb_mapper
)输出的模型,可以使用 infer
命令得到模型的输出向量文件。
具体使用,请参考 模型推理命令(hb_mapper infer) 。
对于*.bin模型,您可以上板运行,得到中间向量输出。 此过程请参考runtime工具文档 hrt_bin_dump工具介绍 。
vec_diff [OPTIONS] left_file/folder right_file/folder
6.2.4.2. 命令行参数¶
- vec_diff的命令行参数:
- -h, --help
显示帮助信息。
- --version
显示版本并退出。
- left_file/folder
文件名,或者文件夹名。
- right_file/folder
文件名,或者文件夹名。
- -o, --output-file FILENAME
输出结果文件的文件名。
6.2.4.3. 输出内容说明¶
由 vec_diff -o
指定的CSV文件,列表(表项为:左侧文件名,右侧文件名,余弦相似度、相对欧拉距、最大绝对误差、方差),参考如下:
Left Files |
Right Files |
Cosine Similarity |
Relative Euclidean Distance |
Max Absolute Error |
Mean Square Error |
---|---|---|---|---|---|
Layerxxx-quanti-input.txt |
Layerxxx-float-input.txt |
xxx |
xxx |
xxx |
xxx |
Layerxxx-quanti-param.txt |
Layerxxx-float-param.txt |
xxx |
xxx |
xxx |
xxx |