OnnxCalibrator¶
功能说明¶
量化参数配置类,通过Calibrator类封装量化算法。
函数原型¶
OnnxCalibrator(input_model, cfg: QuantConfig, calib_data=None)
参数说明¶
| 参数名 | 输入/返回值 | 含义 | 使用限制 |
|---|---|---|---|
| input_model | 输入 | 待量化模型存放路径和文件名。 | 必选。 数据类型:String。 |
| cfg | 输入 | 已配置的QuantConfig类。 | 必选。 数据类型:QuantConfig。 |
| calib_data | 输入 | 模型训练数据,可输入真实数据用于Label-Free量化,也可输入虚拟数据来实现Label-Free量化。 | 可选。 数据类型:list,默认值为[]。 对于单输入模型,配置[[input1]],多输入模型,配置[[input1,input2,input3]]。 (1)如果是单输入场景,可以不输入数据,在模型支持单个float格式输入且指定了input_shape时,会自动调用Label-Free量化流程。 (2)针对多个输入或者需要自定义输入格式的模型,用户必须手动输入数据来实现Label-Free量化。模板示例:calib_data = [[np.random.random(size=(1, 3, 127, 127)).astype(np.float32), np.random.random(size=(1, 3, 255, 255)).astype(np.float32)]]。 |
调用示例¶
from msmodelslim.onnx.squant_ptq import OnnxCalibrator, QuantConfig
quant_config = QuantConfig(disable_names=[],
quant_mode=0,
amp_num=0)
input_model_path="/home/xxx/Resnet50/resnet50_pytorch.onnx" #根据实际路径配置
calib = OnnxCalibrator(input_model_path, quant_config)