命令格式说明
Vector比对命令行格式如下:
python3 msaccucmp.py compare -m my_dump_path -g golden_dump_path -f fusion_rule_file [-out output] [-map] [-c custom_script_path] [-alg algorithm] [-v version] [-r range] [-p post_process] [-overflow_detection]
命令行参数说明如表1所示。
精度比对工具保存在Ascend-cann-toolkit安装目录/ascend-toolkit/latest/toolkit/tools/operator_cmp/compare目录下。
参数名 |
参数说明 |
是否必选 |
---|---|---|
-m --my_dump_path |
基于昇腾AI处理器运行生成的数据文件所在目录。即为3查找的参数dump结果目录。 由于dump数据文件是多个二进制文件,故须指定dump数据文件所在的父目录。如:/home/HwHiAiUser/MyApp_mind/resnet50,其中resnet50文件夹下直接保存dump数据文件。 单个数据文件比对时,需指定数据文件所在的具体目录,支持TensorFlow和PyTorch为原始训练网络的比对。 多个dump数据文件的批量比对时,可指定固定路径为dump_path/time/,仅支持TensorFlow为原始训练网络的比对。指定的路径下可以存放多个dump数据文件,但要求每个dump数据文件拥有唯一路径,且路径命名规则为dump_path/time/device_id/model_name/model_id/dump_step/dump文件。 其中:dump_path为Dump文件保存路径;time为时间戳;device_id为Device设备ID号;model_name子图名称;model_id子图ID号;dump_step为指定采集哪些迭代的Data Dump数据,存在多个step时,只选step最大的进行比对;dump文件为dump文件名。 |
是 |
-g --golden_dump_path |
基于GPU/CPU运行生成的原始网络数据文件所在目录。 由于npy数据文件是多个npy文件,故须指定npy数据文件所在的父目录。如:/home/HwHiAiUser/Standard_caffe/resnet50 ,其中resnet50文件夹下直接保存npy数据文件。 |
是 |
-f --fusion_rule_file |
全网层信息文件(通过使用ATC转换.txt图文件生成的json文件)。.txt图文件为2查找的计算图文件。 单个数据文件比对时,该参数需指定具体的json文件;批量比对时,该参数可指定为多个json文件所在的目录。 说明:
如果是两份相同训练任务、昇腾AI处理器运行生成的dump数据进行精度比对,该参数不需要填写,此时需确保input个数、output个数、format、shape必须完全一致,否则无法比对。 |
否 |
-out --output |
比对数据结果存放路径,默认为当前路径。 单个数据文件比对时,结果文件名格式为result_{timestamp}.csv;多个数据文件比对时,结果文件名格式为{device_id}_{model_name}_{dump_step}_result_{timestamp}.csv,批量比对将生成多个csv结果文件。 |
否 |
-map --mapping |
输出GPU/NPU的映射表。 一般情况下GPU/NPU的映射表需要在完成精度比对之后,才能从csv中获取。本参数实现在精度比对前,直接提取GPU/NPU的映射表。建议在比对数据量太大,需要提前获取GPU/NPU的映射表的场景下使用。详细操作请参见获取GPU/NPU的映射表。 |
否 |
-c --custom_script_path |
用户自定义脚本文件存放路径,包括自定义算法.py文件和自定义Format转换.py文件,需指定到脚本目录的上一层目录。指定本参数时判断是否存在以下文件目录:
不建议调用与当前用户不一致的其它用户目录下的自定义脚本文件,避免提权风险。 |
否 |
-a --advance_options |
比对算法的高级选项,可为指定的算法设置参数,指定的算法必须是-alg参数下的基本算法或者-c参数的自定义算法,被本参数设置后的算法以本参数设置的值执行运算。 输入格式为:算法名:参数名=值,参数名=值;算法名:参数名=值,参数名=值。参数之间是逗号分隔,不同算法是分号分隔,例如:"CosineSimilarity:max=1,min=0;aa:max=1,min=0"。其中算法名与-c参数自定义算法.py文件的algorithm_name(参见准备自定义算法.py文件)一致。 |
否 |
-alg --algorithm |
比对维度,取值为:
配置不同的取值则使用该取值对应维度的算法进行比对,也可指定-c参数的自定义算法名algorithm_name,例如自定义算法名为alg_RelativeError.py,可多选,all为默认取值,配置格式为各取值间用逗号分隔,可配置为数字或算法名,例如0,1,2,RelativeError。 若只选择比对部分维度,则比对结果同样只展示对应维度。 |
否 |
-v --version |
dump文件类型,1代表protobuf序列化后的数据文件,2代表自定义格式的数据文件。默认取2。 |
否 |
-r --range |
设定算子比对范围。配置方式如下:
配置格式为:“start,end,step”。比如:-r 1,101,20,表示算子1,21,41,61,81,101的Tensor参与比对。 不配置本参数时,比对网络模型中的所有参与计算的算子。 |
否 |
-p --post_process |
精度比对时,提取dump数据文件以及比对结果文件中存在精度问题的数据,保存在结果文件同级目录的result_{timestamp}_filtered文件夹下。 取值为:
result_{timestamp}_filtered文件夹保存内容包括:
不配置本参数时,比对并输出整网算子数据。 仅PyTorch比对支持本参数。 |
否 |
-overflow_detection |
整网算子溢出检测。进行整网比对时可检测溢出算子。 默认未配置本参数。 当算子的Tensor数据类型是fp16时,tensor中的任意一个数值的绝对值 >= 65504,认为算子溢出。 |
否 |
注:比对PyTorch算子的训练结果时,仅支持-m、-g、-out、-alg和-p五个参数。 |