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做合法化处理,不会影响适配流程及结果。
函数原型
1 | 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 |
返回值说明
无
调用示例
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) |
落盘文件说明:
- 可用于CPU/GPU测试的fakequant模型以及用于ATC转换的deploy模型。
- (可选)生成一个量化参数的txt格式记录文件,内部记录了完整量化层的量化参数。
父主题: 模型适配接口