save_model
功能说明
训练后量化接口,根据量化因子记录文件record_file和用户待量化的原始pb模型,插入AscendQuant、AscendDequant等算子,然后保存为既可以在TensorFlow环境进行精度仿真又可以在昇腾AI处理器做离线推理的pb模型文件。
约束说明
- 在网络推理的batch数目达到batch_num后,再调用该接口,否则量化因子不正确,量化结果不正确。
- 该接口只接收pb类型的模型文件,用户需要将待量化模型提前转换为pb类型。
- 该接口需要输入量化因子记录文件,量化因子记录文件在quantize_model阶段生成,在模型推理阶段填充有效值。
函数原型
save_model(pb_model, outputs, record_file, save_path)
参数说明
参数名 |
输入/返回值 |
含义 |
使用限制 |
---|---|---|---|
pb_model |
输入 |
用户待量化的原始pb模型文件。 |
数据类型:string |
outputs |
输入 |
graph中输出算子的列表。 |
数据类型:list,列表中元素类型为string |
record_file |
输入 |
量化因子记录文件路径及名称。通过该文件、量化配置文件以及原始pb模型文件,生成量化后的模型文件。 |
数据类型:string |
save_path |
输入 |
模型存放路径。 该路径需要包含模型名前缀,例如./quantized_model/*model。 |
数据类型:string |
返回值说明
无。
函数输出
既可以在TensorFlow环境进行精度仿真又可以在昇腾AI处理器做离线推理的pb模型文件。
重新执行量化时,该接口输出的上述文件将会被覆盖。
调用示例
1 2 3 4 5 6 7 8 9 |
import amct_tensorflow as amct # 进行网络推理,期间完成量化 for i in batch_num: sess.run(outputs, feed_dict={inputs: inputs_data}) # 插入API,将量化的模型存为PB文件 amct.save_model(pb_model="./user_model.pb", outputs=["model/outputs"], record_file="./record_scale_offset.txt", save_path="./inference/model") |
父主题: 训练后量化