昇腾社区首页
中文
注册

比对步骤

比对步骤

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

本节中.json文件、目录等名称均为举例,请根据实际环境替换。其中,--out指定的结果存放路径,需确保HwHiAiUser用户具有读写权限。

不支持两份相同训练任务、昇腾AI处理器运行生成的dump数据进行单算子精度比对。

  1. 以HwHiAiUser用户登录操作系统。
  2. 生成json文件。

    Ascend-cann-toolkit安装目录/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文件名为举例,实际执行时,需要根据实际图文件名替换。

    执行训练脚本完成后会在训练脚本当前目录生成GE图文件,图文件可能会有多个。一般情况下,选取计算图文件方法:将tensorflow模型保存为pb文件,然后查看该模型,选取其中一个计算类算子的名字作为关键字,找包含该关键字的计算图文件。计算图名称取计算图文件graph下的name字段值。

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

    由于dump和npy比对数据文件是由多个文件组成,故下文操作步骤中-m-g参数须指定数据文件所在的父目录。如:/home/HwHiAiUser/MyApp_mind/resnet50,其中resnet50文件夹下直接保存比对数据文件。

    目录结构示例如下:

    root@xxx:/home/HwHiAiUser/MyApp_mind/resnet50# tree
    .
    ├── BatchMatMul.bert_encoder_layer_0_attention_self_MatMul_1.24.1614717261785536
    ├── BatchMatMul.bert_encoder_layer_0_attention_self_MatMul.21.1614717261768864
    ├── BatchMatMul.bert_encoder_layer_10_attention_self_MatMul_1.235.1614717263664916
    #仅为示例,此处省略剩余文件名。
    • 单算子比对标准比对样例:

      python3 msaccucmp.py compare -m /home/HwHiAiUser/MyApp_mind/resnet50 -g /home/HwHiAiUser/Standard_tf/resnet50 -f /home/HwHiAiUser/data/ge_proto_00005_Build.txt.json -out /home/HwHiAiUser/result -op gradients/AddN_63 -i 0

      Vector比对结果文件内容如图1图2所示。
      图1 单算子比对概要结果

      单算子比对概要结果存放在“{op_name}_input_{index}_summary.txt”“{op_name}_output_{index}_summary.txt”文件中,各参数说明如下:

      表1 单算子比对概要结果参数说明

      参数

      说明

      TotalCount

      该算子的dump数据的data个数。

      LeftOp

      表示基于昇腾AI处理器运行生成的dump数据的算子名。

      RightOp

      表示基于GPU/CPU运行生成的npy或dump数据的算子名。

      Format

      数据格式。

      MinAbsoluteError

      绝对误差的最小值

      MaxAbsoluteError

      绝对误差的最大值

      MinRelativeError

      相对误差的最小值

      MaxRelativeError

      相对误差的最大值

      图2 单算子详细比对结果

      单算子比对详细结果存放在“{op_name}_input_{index}_{file_index}.csv”“{op_name}_output_{index}_{file_index}.csv”文件中,每个文件最多记录100万条数据。配置--ignore_single_op_result参数时不生成此结果。比对结果各列参数说明如表2

      表2 单算子比对详细结果各列参数说明

      参数

      说明

      N C H W

      数据的坐标点。

      Left

      该列为基于昇腾AI处理器运行生成的算子dump值。

      Right

      该列为基于GPU/CPU运行生成的算子dump值。

      RelativeError

      相对误差,AbsoluteError值除以Right列算子的dump值比对出来的结果。当Right列算子的dump值为0时,该处显示为“-”

      AbsoluteError

      绝对误差,Left列算子的dump值减Right列算子的dump值取绝对值比对出来的结果。

    • 单算子比对仅比对算子的前n项数据样例:

      python3 msaccucmp.py compare -m /home/HwHiAiUser/MyApp_mind/resnet50 -g /home/HwHiAiUser/Standard_tf/resnet50 -f /home/HwHiAiUser/data/ge_proto_00005_Build.txt.json -out /home/HwHiAiUser/result -op gradients/AddN_63 -i 0 -n 20

      比对完成后的打屏展示结果如图3所示。

      图3 前20项数据比对结果

      前20项数据比对结果文件内容如图4图5所示。

      图4 绝对误差
      图5 相对误差