下载
中文
注册

convert_qat_model

功能说明

将ONNX量化模型适配为CANN支持的量化模型。

约束说明

  • 若QuantizeLinear不为output算子:仅支持对QAT模型中包含QuantizeLinear和DequantizeLinear两类FakeQuant层结构的模型进行适配,且仅权重支持per-channel量化,成对的QuantizeLinear、DequantizeLinear层需要存在相同的量化因子。
  • 若QuantizeLinear为非中间层的output算子,且为单输出:则模型适配时,不需要和DequantizeLinear配对,适配过程中会将QuantizeLinear算子替换成AscendQuant算子。

    由于ONNX原始模型中的offset值以int32类型存储,进行算子替换时,可能会出现offset值超过int8表示范围的情况;但是实际计算过程中,ONNX Runtime以及AMCT都会对offset做合法化处理,不会影响适配流程及结果。

函数原型

convert_qat_model(model_file, save_path, record_file=None)

参数说明

参数名

输入/返回值

含义

使用限制

model_file

输入

待适配的.onnx格式模型文件路径。

数据类型:string

save_path

输入

模型存放路径。该路径需要包含模型名前缀,例如./quantized_model/*model

数据类型:string

record_file

输入

用户计算得到的量化因子记录文件路径,量化因子记录文件格式为.txt。

数据类型:string

默认值为:None

返回值说明

无。

函数输出

  • 可用于CPU/GPU测试的fakequant模型以及用于ATC转换的deploy模型。
  • (可选)生成一个量化参数的txt格式记录文件,内部记录了完整量化层的量化参数。

调用示例

1
2
3
4
import amct_onnx as amct
model_file = "./pre_model/mobilenet_v2_qat.onnx"
save_path="./results/model"
amct.convert_qat_model(model_file, save_path)