CANN/AMCT保存量化重训练模型
save_quant_retrain_model【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品 / Atlas A3 推理系列产品√Atlas A2 训练系列产品 / Atlas A2 推理系列产品√功能说明量化感知训练接口根据用户最终的重训练好的模型插入AscendQuant、AscendDequant等算子生成最终量化精度仿真模型以及量化部署模型。函数原型save_quant_retrain_model (config_file, model, record_file, save_path, input_data, input_namesNone, output_namesNone, dynamic_axesNone)参数说明参数名输入/输出说明config_file输入含义用户生成的量化感知训练配置文件用于指定模型network中量化层的配置情况。数据类型stringmodel输入含义已进行量化感知训练后的量化模型。数据类型torch.nn.Modulerecord_file输入含义量化因子记录文件路径及名称。数据类型stringsave_path输入含义量化模型存放路径。该路径需要包含模型名前缀例如./quantized_model/*model。数据类型stringinput_data输入含义模型的输入数据。一个torch.tensor会被等价为tupletorch.tensor。数据类型tupleinput_names输入含义模型的输入的名称用于保存的量化onnx模型中显示。默认值None数据类型list(string)output_names输入含义模型的输出的名称用于保存的量化onnx模型中显示。默认值None数据类型list(string)dynamic_axes输入含义对模型输入输出动态轴的指定例如对于输入inputsNCHWN、H、W为不确定大小输出outputsNLN为不确定大小则指定形式为{inputs: [0,2,3], outputs: [0]}其中0,2,3分别表示NHW所在位置的索引。默认值None数据类型dictstring, dictpython:int, string or dictstring, list(int)使用约束int类型取值需要为非负数返回值说明无调用示例import amct_pytorch as amct # 建立待量化的网络图结构 model build_model() model.load_state_dict(torch.load(state_dict_path)) input_data tuple([torch.randn(input_shape)]) # 训练量化retrain模型训练量化因子 train_model(quant_retrain_model, input_batch) # 推理量化retrain模型导出量化因子 infer_model(quant_retrain_model, input_batch) # 插入量化API将量化感知训练的模型存为ONNX文件 amct.save_quant_retrain_model( config_json_file, model, record_file, save_path./results/model input_data, input_names[input], output_names[output], dynamic_axes{input:{0: batch_size}, output:{0: batch_size}})落盘文件说明精度仿真模型文件ONNX格式的模型文件模型名中包含fake_quant可以在ONNX Runtime环境进行精度仿真。部署模型文件ONNX格式的模型文件模型名中包含deploy经过ATC转换工具转换后可部署到AI处理器。可选*.external文件包括*deploy.external和*fakequant.external只有保存的精度仿真模型以及部署模型文件大小2GB才会生成该类文件且与压缩后的*.onnx模型文件生成在同级目录用于保存Tensor中的数据每个Tensor数据单独保存一份*.external文件文件名与Tensor相同例如_conv1.weight__deploy.external和_conv1.weight__fakequant.external。后续通过ATC工具加载压缩后的*.onnx部署模型文件进行模型转换时会自动读取同级目录下*.external文件中的Tensor数据。重新执行量化感知训练时该接口输出的上述文件将会被覆盖。【免费下载链接】amctAMCT是CANN提供的昇腾AI处理器亲和的模型压缩工具仓。项目地址: https://gitcode.com/cann/amct创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考