昇腾模型压缩工具支持命令行方式和Python API接口方式量化原始网络模型,命令行方式相比Python API接口方式有以下优点:
命令行方式 |
Python API接口方式 |
---|---|
量化准备动作简单,只需准备模型和模型匹配的数据集即可。 |
需要了解Python语法和量化流程。 |
量化过程简单,只涉及参数选择,无需对量化脚本进行适配。 |
需要适配修改量化脚本。 |
当前仅支持如下特性:
|
支持量化的所有功能。 |
本章节以Sample中MobileNet V2网络模型为例,为您介绍如何借助命令行参数快速体验量化一个模型,Python API接口方式请参见量化。Sample获取链接请单击Link。
单击Link获取MobileNet V2网络模型,解压后将其中的(*.pb)文件,以昇腾模型压缩工具软件包运行用户上传至Linux服务器Sample目录cmd/model。
python3.7.5 ./data/process_data.py
转换完成后,请删除calibration目录非bin格式的文件。
amct_tensorflow calibration --model=./model/mobilenet_v2_1.0_224_frozen.pb --save_path=./results/mobilenet_v2 --outputs="MobilenetV2/Predictions/Reshape_1:0" --input_shape="input:32,224,224,3" --data_dir="./data/calibration/" --data_types="float32"
用户可以通过amct_tensorflow calibration --help命令查看命令行涉及的所有参数,关于参数的详细解释以及使用方法请参见命令行参数说明。
INFO - [AMCT]:[save_model]: The model is saved in $HOME/xxx/results/mobilenet_v2.pb
量化后生成文件说明如下:
实际量化过程中,如果量化后的模型推理精度不满足要求,则用户可以根据量化后的quant_config.json,自行构造简易配置文件config.cfg,构造原则请参见调优流程。然后使用--calibration_config参数重新进行量化。通过该文件用户可以自行决定校准使用的数据量,以及控制哪些层进行量化等。