Vitis AI 量化器流程 - 3.5 简体中文

Vitis AI 用户指南 (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 简体中文

下图描述了整个模型量化流程。

图 1. VAI 量化器工作流程
注释:Vitis AI 2.5 起,已弃用 Caffe。如需了解有关 Caffe 的信息,请参阅《Vitis AI 2.0 用户指南》。

Vitis AI 量化器接受浮点模型作为输入,并执行预处理(折叠 batch-norm 并移除推断不需要的节点)。然后,它将权重/偏差和激活量化至给定的位宽。

量化模型前,使用称为“检查器”的步骤对模型进行检查。检查器会输出分区信息,以指示可在相应器件 (DPU/CPU) 上运行的各项运算。总体上,DPU 比 CPU 更快,意图是在 DPU 器件上尽可能运行更多运算符。分区结果包含各项消息用于说明特定运算符无法在 DPU 上执行的原因。这有助于您更好地了解 DPU 的能力,并帮助您调整 DPU 模型。

Vitis AI 量化器需要多次迭代推断来校准激活,以提高量化模型的精度并捕获激活统计数据。这需要一个校准图像数据集作为输入。通常由于不需要反向传播,量化器能够妥善处理 100 到 1000 张校准图像,而无标记的数据集也能发挥作用。

校准后,量化模型变换为 DPU 可部署格式(对于 vai_q_tensorflow,它被称为 deploy_model.pb,对于 vai_q_pytorch,则称为 model_name.xmodel),此格式与 DPU 的数据格式保持一致。然后,Vitis AI 编译器即可编译该模型并将其部署到 DPU。但标准版 TensorFlow 或 PyTorch 框架无法直接接受量化模型。