昇腾社区首页
中文
注册

整网比对

命令格式说明

Vector比对命令行格式如下:

python3 compare_vector.py -l LEFT_DUMP_PATH -r RIGHT_DUMP_PATH -f FUSION_JSON_FILE_PATH -o OUTPUT_PATH [-custom CUSTOM_PATH]
  • -l:基于昇腾AI处理器运行生成的dump数据文件所在目录,目录下dump文件命名格式需符合要求: op_type.op_name.taskid.timestamp,其中op_type、op_name对应的名称需满足“A-Za-z0-9_-”正则表达式规则,timestamp为16位时间戳,taskid为0~9数字组成。
  • -r:基于GPU/CPU运行生成的TensorFlow原始网络npy或dump数据文件所在目录,目录下文件命名需符合要求:
    • dump数据文件命名规则:op_name.output_index.timestamp.pb,其中op_name对应的名称需满足“A-Za-z0-9_-”正则表达式规则,timestamp为16位时间戳,output_index为0~9数字组成。
    • npy数据文件命名规则:op_name.output_index.timestamp.npy,其中op_name字段需满足“A-Za-z0-9_-”正则表达式规则,timestamp为16位时间戳,output_index为0~9数字组成。
  • -f:全网层信息文件(通过使用ATC转换.txt图文件生成的json文件)。
  • -o:比对数据结果待存储目录及文件名。
  • -custom:用户自定义Format转换.py文件存放路径,需指定到“format_convert”目录的上一层目录。可选。.py文件相关要求参见准备自定义Format转换.py文件

比对步骤

Vector比对命令行方式操作步骤:

本节中.json文件、目录等名称均为举例,请根据实际环境替换;其中result路径需提前创建,并确保HwHiAiUser用户具有读写权限。

  1. 以HwHiAiUser用户登录操作系统。
  2. 执行export命令设置环境变量并生成json文件。

    设置环境变量:

    export LD_LIBRARY_PATH=/home/HwHiAiUser/Ascend/ascend-toolkit/latest/lib64:${LD_LIBRARY_PATH}

    图文件转json:

    /ascend-toolkit/latest/bin/atc --mode=5 --om=ge_proto_00005_Build.txt --json=ge_proto_00005_Build.txt.json

    该命令行中ge_proto_00005_Build.txt文件名为举例,实际执行时,需要根据实际图文件名替换。

    一般情况下,*_Build.txt文件有多个,选取计算图文件方法:以ge_proto_*****_Build.txt为例,分别打开并查看这些文件,如果包含name字段为IteratorV2或Iterator或GetNext的算子,则为计算图。

  3. 进入/home/HwHiAiUser/Ascend/ascend-toolkit/latest/toolkit/tools/operator_cmp/compare目录。
  4. 执行Vector比对命令,样例命令如下:

    python3 compare_vector.py -l /home/HwHiAiUser/MyApp_mind/resnet50 -r /home/HwHiAiUser/Standard_tf/resnet50 -f /home/HwHiAiUser/data/ge_proto_00005_Build.txt.json -o /home/HwHiAiUser/result/result.txt

    如果需要保存为csv格式文件,可以修改命令为:-o /home/HwHiAiUser/result/result.csv -csv

  5. Vector比对结果result.txt文件内容如图1所示。
    图1 模型比对结果

    参数解释如下:

    • LeftOp:表示基于昇腾AI处理器运行生成的dump数据的算子名。
    • RightOp:表示基于GPU/CPU运行生成的npy或dump数据的算子名。
    • TensorIndex:表示基于昇腾AI处理器运行生成的dump数据的算子的input ID和output ID。
    • CosineSimilarity:进行余弦相似度算法比对出来的结果,范围是[-1,1],比对的结果如果越接近1,表示两者的值越相近,越接近-1意味着两者的值越相反。
    • MaxAbsoluteError:进行最大绝对误差算法比对出来的结果,值越接近于0,表明越相近,值越大,表明差距越大。
    • AccumulatedRelativeError:进行累积相对误差算法比对出来的结果,值越接近于0,表明越相近,值越大,表明差距越大。
    • RelativeEuclideanDistance:进行欧氏相对距离算法比对出来的结果,值越接近于0,表明越相近,值越大,表明差距越大。
    • KullbackLeiblerDivergence:进行KL散度算法比对出来的结果,取值范围是0到无穷大。KL散度越小,真实分布与近似分布之间的匹配越好。
    • StandardDeviation:进行标准差算法比对出来的结果,取值范围:0到无穷大。标准差越小,离散度越小,表明越接近平均值。该列显示两组数据的均值和标准差,第一组展示基于昇腾AI处理器运行生成的dump数据的数值(均值;标准差),第二组展示基于GPU/CPU运行生成的dump数据的数值(均值;标准差)。
    • 显示“*”,表示在NPU侧新增的算子无对应的标准算子;“NaN”表示无比对结果。
    • 余弦相似度和KL散度比较结果为NaN,其他算法有比较数据,则表明左侧或右侧数据为0;KL散度比较结果为Inf,表明右侧数据有一个为0。