ONNX Runtime 入门:模型部署实践
2026-08-19
ONNX (Open Neural Network Exchange) 是开放的模型交换格式,ONNX Runtime 是其官方推理引擎。本文介绍基本使用流程。
什么是 ONNX
ONNX 定义了一组通用的算子和模型格式,让不同框架(PyTorch、TensorFlow 等)训练的模型可以在统一的运行时上推理。
模型导出
# PyTorch 模型导出为 ONNX
import torch
model = MyModel()
dummy_input = torch.randn(1, 3, 224, 224)
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=17)
推理部署
# Python 推理
import onnxruntime as ort
import numpy as np
session = ort.InferenceSession("model.onnx")
input_data = np.random.randn(1, 3, 224, 224).astype(np.float32)
result = session.run(None, {"input": input_data})
性能优化
ONNX Runtime 支持多种优化:图优化(算子融合)、量化(INT8)、硬件加速(CUDA/DirectML/CoreML)。量化后的模型体积减小4倍,推理速度提升2-4倍。