convert_model
功能说明
根据用户自己计算得到的量化因子以及TensorFlow模型,适配成既可以在昇腾AI处理器上部署的模型又可以在TensorFlow环境下进行精度仿真的量化模型。
约束说明
- 用户模型需要保证和量化因子记录文件配套,例如用户对Conv+BN结构先进行融合再计算得到融合Conv的量化因子,则所提供用于转换的原始TensorFlow模型中Conv+BN结构也需要预先进行融合。
- 量化因子记录文件格式及记录内容需要严格符合AMCT定义要求,详细信息请参见record记录文件。
- 仅支持对AMCT支持量化的层:卷积层(Conv2D)、全连接层(MatMul)、深度可分离卷积层(DepthwiseConv2dNative,dilation为1)、反卷积层(Conv2DBackpropInput,dilation为1)、平均下采样层AvgPool。
- 该接口支持对用户模型中的Conv+BN、Depthwise_Conv+BN、Group_conv+BN融合结构进行融合,且可逐层配置是否做融合。
- 仅支持输入原始浮点数模型进行适配,不支持用户对包含量化工具插入自定义层(QuantIfmr层、QuantArq层、SearchN层、AscendQuant层、AscendDequant层、AscendAntiQuant层、AscendWeightQuant层)的模型进行适配。
函数原型
convert_model(pb_model, outputs, record_file, save_path)
参数说明
参数名 |
输入/返回值 |
含义 |
使用限制 |
---|---|---|---|
pb_model |
输入 |
用户待适配的原始pb模型文件。 |
数据类型:string |
outputs |
输入 |
graph中输出算子的列表。 |
数据类型:list |
record_file |
输入 |
用户计算得到的量化因子记录文件路径,量化因子记录文件格式为.txt。 |
数据类型:string |
save_path |
输入 |
模型存放路径。该路径需要包含模型名前缀,例如./quantized_model/*model。 |
数据类型:string |
返回值说明
无。
函数输出
既可以在TensorFlow环境进行精度仿真又可以在昇腾AI处理器做离线推理的pb模型文件。
重新执行适配时,该接口输出的上述文件将会被覆盖。
调用示例
1 2 3 4 5 |
import amct_tensorflow as amct convert_model(pb_model='./user_model.pb', outputs=["model/outputs"], record_file='./record_quantized.txt', save_path='./quantized_model/model') |
父主题: 训练后量化