量化前检查浮点模型 - 3.5 简体中文

Vitis AI 用户指南 (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 简体中文
Vai_q_pytorch 提供了一个检查器函数,以帮助您诊断不同器件架构下的神经网络 (NN) 模型。检查器可以基于硬件约束来预测目标器件分配,以支持用户生成报告。生成的检查报告可用于指导您对 NN 模型进行修改或最优化,从而显著降低部署难度并缩短部署时间。建议先检查浮点模型,然后再继续对其进行量化。

本节以 resnet18_quant.py 为例,演示如何修改模型代码并应用该功能特性:

  1. 导入 vai_q_pytorch 模块:
    from pytorch_nndct.apis import Inspector
  2. 创建含目标名称或指纹的检查器:
    inspector = Inspector("0x603000b16013831") # by target fingerprint
    or
    inspector = Inspector("DPUCAHX8L_ISA0_SP") # by target name
  3. 检查浮点模型:
    input = torch.randn([batch_size, 3, 224, 224])
    inspector.inspect(model, input)
  4. 运行以下命令行以检查模型:
    python resnet18_quant.py --quant_mode float --inspect
检查器会在屏幕上显示特殊消息,根据 verbose_level 设置,这些消息会包含特殊颜色和特殊关键字前缀“VAIQ_*”。
注释: 这些消息显示在“[VAIQ_NOTE]: =>Start to inspect model...”与“[VAIQ_NOTE]: =>Finish inspecting”之间。
如果检查器成功运行,那么通常在输出目录 /quantize_result 下会生成以下 3 个文件:
inspect_{target}.txt: Target information and all the details of operations in float model
inspect_{target}.svg: If image_format is not None. A visualization of the inspection result is generated
inspect_{target}.gv: If image_format is not None. The dot source code of the inspection result is generated
注释:
  • 该检查器依赖于“xcompiler”包。在 Vitis AI Docker 中的 Vitis AI-Pytorch conda 环境内,提供了现成的 xcompiler。但如果 vai_q_pytorch 是由源代码安装的,那么它必须提前安装 xcompiler。
  • 检查结果的可视化依赖于 dot 引擎。如果没有成功安装 dot,请在检查时设置 image_format = None
  • 如需获取更详细的指导信息,请参阅 example/jupyter_notebook/inspector/inspector_tutorial.ipynb。提前安装 Jupyter Notebook。运行下列命令:
    jupyter notebook example/jupyter_notebook/inspector/inspector_tutorial.ipynb