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) |
父主题: 模型适配接口