函数功能
将非量化Graph自动修改为量化后的Graph。具体的样例请参考自动量化。
函数原型
graphStatus aclgrphCalibration(ge::Graph &graph, const std::map<AscendString, AscendString> &quantizeConfigs)
参数说明
参数名 |
输入/输出 |
描述 |
graph |
输入 |
待修改的用户原始Graph。 |
quantizeConfigs |
输入 |
map表,key为参数类型,value为参数值,均为字符串格式,描述执行接口所需要的配置选项。具体配置参数如下所示:
- INPUT_DATA_DIR:必填,用于计算量化因子的数据bin文件路径,建议传入不少于一个batch的数据。如果模型有多个输入,则输入数据文件以英文逗号分隔。
- INPUT_SHAPE:必填,输入数据的shape。例如:"input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2"。指定的节点必须放在双引号中,节点中间使用英文分号分隔。input_name必须是Graph中的节点名称。
- SOC_VERSION:必填,进行训练后量化校准推理时,所使用的芯片名称。
如果无法确定具体的<soc_version>,则在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,在查询到的“Name”前增加Ascend信息,例如“Name”对应取值为xxxyy,实际配置的<soc_version>值为Ascendxxxyy。
- INPUT_FORMAT:选填,输入数据的排布格式,支持"NCHW", "NHWC", "ND"。
- INPUT_FP16_NODES:选填,指定输入数据类型为FP16的输入节点名称。
- CONFIG_FILE:选填,用于配置高级选项的配置文件路径。配置文件的示例请参考简易配置文件。
- LOG_LEVEL:选填,设置训练后量化时的日志等级,该参数只控制训练后量化过程中显示的日志级别,默认显示info级别:
- debug:输出debug/info/warning/error/event级别的日志信息。
- info:输出info/warning/error/event级别的日志信息。
- warning:输出warning/error/event级别的日志信息。
- error:输出error/event级别的日志信息。
此外,训练后量化过程中的日志打屏以及日志落盘信息由 AMCT_LOG_DUMP环境变量进行控制:
- export AMCT_LOG_DUMP=1:表示日志打印到屏幕,不保存量化因子record文件和graph文件。
- export AMCT_LOG_DUMP=2:将日志落盘到当前路径的“amct_log_{timestamp}/amct_acl.log”文件中,同时在“amct_log_{timestamp}”目录下保存量化因子record文件record.txt。
- export AMCT_LOG_DUMP=3:将日志落盘到当前路径的“amct_log_{timestamp}/amct_acl.log”文件中,同时在“amct_log_{timestamp}”目录下保存量化因子record文件record.txt和包含量化过程中各阶段的图描述信息的graph文件。
为防止日志文件、record文件、graph文件持续落盘导致磁盘被写满,请及时清理这些文件。 如果用户配置了ASCEND_WORK_PATH环境变量,则上述日志、量化因子record文件和graph文件存储到该环境变量指定的路径下,例如ASCEND_WORK_PATH=/home/test,则存储路径为:/home/test/amct_acl/amct_log_{pid}_时间戳。其中,amct_acl模型转换过程中会自动创建,{pid}为进程号。
- OUT_NODES:选填,用户Graph的输出节点名。
- DEVICE_ID:选填,指定设备ID,默认为0。
- Atlas 200/300/500 推理产品,支持配置该参数。
- Atlas 训练系列产品,支持该配置参数。
- Atlas 推理系列产品(Ascend 310P处理器),支持该配置参数。
- Atlas 200/500 A2推理产品,支持该配置参数。
- Atlas A2训练系列产品,支持配置该参数。
- IP_ADDR:指定NCS所在服务器的IP地址。
- Atlas 200/300/500 推理产品,不支持配置该参数。
- Atlas 训练系列产品,不支持该配置参数。
- Atlas 推理系列产品(Ascend 310P处理器),不支持该配置参数。
- Atlas 200/500 A2推理产品,Ascend RC场景支持该配置参数,且必填。
- Atlas A2训练系列产品,不支持配置该参数。
- PORT:指定NCS所在服务器端口。
- Atlas 200/300/500 推理产品,不支持配置该参数。
- Atlas 训练系列产品,不支持该配置参数。
- Atlas 推理系列产品(Ascend 310P处理器),不支持该配置参数。
- Atlas 200/500 A2推理产品,Ascend RC场景支持该配置参数,且必填。
- Atlas A2训练系列产品,不支持配置该参数。
- INSERT_OP_CONF:插入算子的配置文件路径与文件名,例如aipp预处理算子。
配置文件路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符;文件后缀不局限于.cfg格式,但是配置文件中的内容需要满足prototxt格式。 配置文件的内容示例如下: aipp_op {
aipp_mode:static
input_format:YUV420SP_U8
csc_switch:true
var_reci_chn_0:0.00392157
var_reci_chn_1:0.00392157
var_reci_chn_2:0.00392157
}
说明:
关于配置文件详细配置以及参数说明,请参见《ATC工具使用指南》>高级功能>AIPP使能章节。
|
返回值
参数名 |
类型 |
描述 |
- |
graphStatus |
SUCCESS:图修改成功。 其他:修改失败 |
约束说明
- 对于已经被插入量化算子的Graph不支持进行量化。
- 支持量化的层及约束请参考支持量化的层及约束。
产品支持情况
Atlas 200/300/500 推理产品,支持。
Atlas 训练系列产品,支持。
Atlas 推理系列产品(Ascend 310P处理器),支持。
Atlas 200/500 A2推理产品,支持。
Atlas A2训练系列产品,支持。