212 Star 1.1K Fork 982

Ascend/samples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

ResNet-101

1. 训练后量化(均匀量化)

1.1 量化前提

  • 模型准备
    请下载 ResNet-101 模型文件到 model 目录。

  • 数据集准备
    使用昇腾模型压缩工具对模型完成量化后,需要对模型进行推理,以测试量化数据的精度。推理过程中需要使用和模型相匹配的数据集。请下载测试图片,解压后将 “images” 文件夹放到 data 目录下。

  • 校准集准备
    校准集用来产生量化因子,保证精度。本 sample 校准集与数据集相同。

1.2 量化示例

执行量化示例前,请先检查当前目录下是否包含以下文件及目录,其中 images 文件夹内部包含有 160 张用于校准和测试的图片:

请在当前目录执行如下命令运行示例程序:

CUDA_VISIBLE_DEVICES=0 python ./src/resnet-101_calibration.py

其中 CUDA_VISIBLE_DEVICES 是必填参数,表示使用 CPU 还是 GPU 进行量化,参数取值为:

  • -1:使用 CPU 进行量化。
  • 其他 Device ID使用 GPU 进行量化,具体 ID 请以用户实际环境为准。当前仅支持配置单 Device。

若出现如下信息,则说明量化成功:

INFO - [AMCT]:[Utils]: The model file is saved in ./outputs/calibration/resnet-101_deploy_model.onnx
INFO - [AMCT]:[Utils]: The model file is saved in ./outputs/calibration/resnet-101_fake_quant_model.onnx
[INFO] ResNet101 before quantize top1:    0.8875 top5:    0.9625
[INFO] ResNet101 after quantize  top1:     0.875 top5:    0.9625

1.3 量化结果

量化成功后,在当前目录会生成量化日志文件 ./amct_log/amct_pytorch.log 和 ./outputs/calibration 文件夹,该文件夹内包含以下内容:

  • tmp: 临时文件夹
    • config.json: 量化配置文件,描述了如何对模型中的每一层进行量化。
    • record.txt: 量化因子记录文件记录量化因子。
    • modified_model.onnx: 临时模型文件,即原始的 PyTorch 模型 BN 融合后导出的 ONNX 模型文件。
  • resnet-101_deploy_model.onnx: 量化部署模型,即量化后的可在昇腾 AI 处理器部署的模型文件。
  • resnet-101_fake_quant_model.onnx: 量化仿真模型,即量化后的可在 ONNX 执行框架 ONNX Runtime 进行精度仿真的模型

如果量化脚本所在目录下已经存在量化配置文件,则再次调用 create_quant_config 接口时,如果新生成的量化配置文件与已有的文件同名,则会覆盖已有的量化配置文件,否则生成新的量化配置文件。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ascend/samples.git
git@gitee.com:ascend/samples.git
ascend
samples
samples
master

搜索帮助