注释: “vai_q_pytorch”log 日志消息可通过特殊颜色和独特的关键字前缀“VAI_Q_*”来识别。log 日志消息类型包括“error”、“warning”和“note”。监控“vai_q_pytorch”log 日志消息对于验证流程状态至关重要。
- 运行以下命令来量化该模型:
python resnet18_quant.py --quant_mode calib --subset_len 200
向前校准时,请借用浮点评估流程,以最大程度减少浮点脚本中的代码更改。如果最终遇到损失和精度消息,可将其忽略。
在量化和评估过程中,控制迭代次数至关重要。通常,对于量化而言,使用 100 到 1000 张图像足矣,评估则需要整个确认集。您可在数据加载部分管理迭代次数。其中
subset_len
实参可管理用于网络前传的图像数量。如果浮点评估脚本缺少类似实参,则必须添加一个。成功执行量化命令后,会在输出目录 ./quantize_result 中生成两个重要文件。
- ResNet.py
- 转换后的 vai_q_pytorch 格式模型。
- Quant_info.json
- 张量的量化步骤。保留此文件以便评估量化模型。
- 要评估量化模型,请运行以下命令:
python resnet18_quant.py --quant_mode test
成功执行命令后显示的精度对应于量化模型的精度。
- 要生成 XMODEL 以便进行编译(以及供 ONNX 格式量化模型使用),批次大小应为 1。设置
subset_len=1
可避免冗余迭代,并运行以下命令:python resnet18_quant.py --quant_mode test --subset_len 1 --batch_size=1 --deploy
运行期间,跳过 log 日志中显示的损失和精度。Vitis AI 编译器的 XMODEL 文件会在输出目录 ./quantize_result 中生成。此文件可用于部署到 FPGA。
ResNet_int.xmodel: deployed XIR format model ResNet_int.onnx: deployed onnx format model ResNet_int.pt: deployed torch script format model
注释: 在 Vitis AI Docker 的 Vitis AI-pytorch conda 环境中,XIR 已准备就绪可供使用。但如果您从源代码安装 vai_q_pytorch,则需要提前安装 XIR。如不安装 XIR,将无法生成 XMODEL 文件,从而导致执行命令时出错。但您仍可在输出 log 日志中验证精度。