离线模型dump数据精度比对
简介
本节主要介绍传统小模型场景的精度比对工具:该工具用于ONNX和TensorFlow框架模型的ATC模型转换前后的比对、TensorFlow训练场景的比对和离线模型不同版本之间的比对等场景。
使用前准备
环境准备
安装msProbe工具,详情请参见《msProbe安装指南》。
安装配套版本的CANN Toolkit开发套件包和ops算子包并配置CANN环境变量,具体请参见CANN快速安装。
约束
支持Caffe、ONNX、TensorFlow和om模型的离线dump数据。
离线模型dump数据精度比对
功能说明
将离线模型dump的数据进行精度比对操作。
注意事项
无
命令格式
msprobe compare -m offline_data -tp <target_path> -gp <golden_path> [-fr <fusion_rule_file>] [-cfr <close_fusion_rule_file>] [-qfr <quant_fusion_rule_file>] [-o <output_path>]
参数说明
参数名 |
可选/必选 |
说明 |
|---|---|---|
-m |
必选 |
比对模式,当前场景为offline_data,表示离线数据比对场景。 |
-tp 或 --target_path |
必选 |
基于昇腾AI处理器运行生成的数据文件所在目录。由于dump数据文件是多个二进制文件,故须指定dump数据文件所在的父目录。如:$HOME/MyApp_mind/resnet50,其resnet50文件夹下直接保存dump数据文件。 |
-gp 或 --golden_path |
必选 |
基于GPU/CPU运行生成的原始网络数据文件所在目录。 |
-o 或 --output_path |
可选 |
比对数据结果存放路径,默认为当前路径。 |
-fr 或 --fusion_rule_file |
可选 |
全网层信息文件。 |
-qfr 或 --quant_fusion_rule_file |
可选 |
量化信息文件(昇腾模型压缩输出的json文件)。 |
-cfr 或 --close_fusion_rule_file |
可选 |
全网层信息文件(通过使用ATC转换.om模型文件生成的json文件,文件包含关闭算子融合功能情况下整网算子的映射关系)。 |
使用示例
完成离线模型的数据dump。
用户须自行准备GPU和NPU离线模型的dump数据。
执行dump数据精度比对。示例命令如下:
msprobe compare -m offline_data -tp ./data/target_path -gp ./data/golden_path -fr ./data/fusion_rule.json
输出说明
默认情况下,比对命令执行完成后在命令执行的当前路径生成比对结果文件result_{timestamp}.csv的生成路径。
比对结果文件说明
result_{timestamp}.csv比对结果文件示例如下:


参数 |
说明 |
|---|---|
Index |
网络模型中算子的ID。 |
OpSequence |
部分算子比对时算子运行的序列。即-fr参数指定的全网层信息文件中算子的ID。 |
OpType |
算子类型。指定-fr参数时获取算子类型。 |
NPUDump |
表示My Output模型的算子名。 |
DataType |
表示NPU Dump侧数据算子的数据类型。 |
Address |
dump tensor的内存地址。用于判断算子的内存问题。仅基于昇腾AI处理器运行生成的dump数据文件在整网比对时可提取该数据。 |
GroundTruth |
表示Ground Truth模型的算子名。 |
DataType |
表示Ground Truth侧数据算子的数据类型。 |
TensorIndex |
表示基于昇腾AI处理器运行生成的dump数据的算子的input ID和output ID。 |
Shape |
比对的Tensor的Shape。 |
OverFlow |
溢出算子。显示YES表示该算子存在溢出;显示NO表示算子无溢出;显示NaN表示不做溢出检测。配置-overflow_detection参数时展示。 |
CosineSimilarity |
进行余弦相似度算法比对出来的结果,取值范围为[-1,1],比对的结果如果越接近1,表示两者的值越相近,越接近-1意味着两者的值越相反。 |
MaxAbsoluteError |
进行最大绝对误差算法比对出来的结果,取值范围为0到无穷大,值越接近于0,表明越相近,值越大,表明差距越大。 |
AccumulatedRelativeError |
进行累积相对误差算法比对出来的结果,取值范围为0到无穷大,值越接近于0,表明越相近,值越大,表明差距越大。 |
RelativeEuclideanDistance |
进行欧氏相对距离算法比对出来的结果,取值范围为0到无穷大,值越接近于0,表明越相近,值越大,表明差距越大。 |
KullbackLeiblerDivergence |
进行KL散度算法比对出来的结果,取值范围为0到无穷大。KL散度越小,真实分布与近似分布之间的匹配越好。 |
StandardDeviation |
进行标准差算法比对出来的结果,取值范围为0到无穷大。标准差越小,离散度越小,表明越接近平均值。 |
MeanAbsoluteError |
表示平均绝对误差。取值范围为0到无穷大,MeanAbsoluteError和RootMeanSquareError均趋于0,说明测量值与真实值越近似;MeanAbsoluteError趋于0,RootMeanSquareError越大,说明存在局部过大的异常值;MeanAbsoluteError越大,RootMeanSquareError等于或近似MeanAbsoluteError,说明整体偏差越集中;MeanAbsoluteError越大,RootMeanSquareError越大于MeanAbsoluteError,说明存在整体偏差,且整体偏差分布分散;不存在以上情况的例外情况,因为RootMeanSquareError ≥ MeanAbsoluteError恒成立。 |
RootMeanSquareError |
表示均方根误差。取值范围为0到无穷大,MeanAbsoluteError趋于0,RootMeanSquareError趋于0,说明测量值与真实值越近似;MeanAbsoluteError趋于0,RootMeanSquareError越大,说明存在局部过大的异常值;MeanAbsoluteError越大,RootMeanSquareError等于或近似MeanAbsoluteError,说明整体偏差越集中;MeanAbsoluteError越大,RootMeanSquareError越大于MeanAbsoluteError,说明存在整体偏差,且整体偏差分布分散;不存在以上情况的例外情况,因为RootMeanSquareError ≥ MeanAbsoluteError恒成立。 |
MaxRelativeError |
表示最大相对误差。取值范围为0到无穷大,值越接近于0,表明越相近,值越大,表明差距越大。 |
MeanRelativeError |
表示平均相对误差。取值范围为0到无穷大,值越接近于0,表明越相近,值越大,表明差距越大。 |
CompareFailReason |
算子无法比对的原因。 |