量化模型的推断 - 3.5 简体中文

Vitis AI 用户指南 (UG1414)

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

以 torch 脚本格式推断量化模型

您可在 PyTorch 框架下以 TorchScript 格式(PT 文件)运行量化模型。执行推断之前,请先导入 pytorch_nndct 模块,因为它会为该模型设置量化运算符。代码示例如下所示:
import pytorch_nndct

# prepare input data
input = ......

quantized_model = torch.jit.load(quantized_model_path)

# feed input data to quantized model and make inference
output = quantized_model(input)

以 ONNX 脚本格式推断量化模型

您可通过 ONNX Runtime API 以 ONNX 格式运行量化模型。
对于含原生 Quantize 运算符和 DeQuantize 运算符的 ONNX 模型,您可使用 ONNX Runtime 来运行模型。代码示例如下所示:
import onnxruntime as ort

# prepare input data
input_data = ......

ort_sess = ort.InferenceSession(quantized_model_path)
input_name = ort_sess.get_inputs()[0].name
ort_output = ort_sess.run(None, {input_name: input_data})

您必须设置自定义运算符,然后为带有 VAI Quantize 和 DeQuantize 运算符的 ONNX 模型使用 onnxruntime_extensions 来运行模型。此设置可通过从 pytorch_nndct 导入的 load_vai_ops() 函数来完成。代码示例如下所示:

from onnxruntime_extensions import PyOrtFunction
from pytorch_nndct.apis import load_vai_ops

## Before running the ONNX model, custom ops must be set.
load_vai_ops()

# prepare input data
input = ......

# run using onnxruntime_extensions API
run_ort = PyOrtFunction.from_model(quantized_model_path)
ort_outputs = run_ort(input)

以 XIR 格式推断量化模型

目前尚无任何工具可运行 XIR 格式的量化模型。