save_model_ascend
功能说明
训练后量化接口,根据量化因子记录文件record_file将用户待量化的原始pb模型保存为可以在NPU(昇腾AI处理器)环境进行在线推理的pb模型文件。
约束说明
- 该接口只接收pb类型的模型文件,用户需要将待量化模型提前转换为pb类型。
- 该接口需要输入量化因子记录文件,量化因子记录文件在quantize_model_ascend阶段生成,在模型推理阶段填充有效值。
函数原型
save_model_ascend(pb_model, outputs, record_file, save_path)
参数说明
参数名 |
输入/返回值 |
含义 |
使用限制 |
---|---|---|---|
pb_model |
输入 |
用户待量化的原始pb模型文件。 |
数据类型:string 使用约束:pb_model必须为推理图模型,图中不能包含训练模式的算子,例如FusedBatchNormV3算子的is_training必须为False。 |
outputs |
输入 |
graph中输出算子的列表。 |
数据类型:list,列表中元素类型为string |
record_file |
输入 |
量化因子记录文件路径及名称。通过该文件、量化配置文件以及原始pb模型文件,生成量化后的模型文件。 |
数据类型:string |
save_path |
输入 |
模型存放路径。 该路径需要包含模型名前缀,例如./quantized_model/*model。 |
数据类型:string |
返回值说明
无。
函数输出
可以在NPU(昇腾AI处理器)环境进行在线推理的pb模型文件。重新执行量化时,该接口输出的上述文件将会被覆盖。
调用示例
import amct_tensorflow as amct # 进行网络推理,期间完成量化 with calibration_graph.as_default(): sess = tf.session(prepare_config("npu")) sess.run(calibration_outputs, feed_dict={inputs: inputs_data}) # 插入API,将量化的模型存为PB文件 amct.save_model_ascend(pb_model="./user_model.pb", outputs=["model/outputs"], record_file="./record_scale_offset.txt", save_path="./inference/model")
父主题: 训练后量化