onnxruntime-inference-examples
ONNX Runtime 推理优化实战集合,覆盖多框架部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ONNX Runtime 推理优化实战集合,覆盖多框架部署
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

你花了三天训练好了一个 ResNet-50 模型,上线后却发现——延迟高得离谱。GPU 利用率只有 30%,CPU 成了瓶颈。同样的模型,隔壁组用 ONNX Runtime 部署后,延迟从 85ms 降到了 12ms。
问题不在模型本身,而在于推理运行时的选择。ONNX Runtime(ORT)正是微软给出的一份答卷——一个横跨云端、边缘、移动端的 ML 推理加速引擎,在全球超过 10 亿台设备上运行,包括 Azure ML、Power BI、Office、必应搜索等微软核心产品。这个仓库,正是微软官方发布的推理实战手册。
microsoft/onnxruntime-inference-examples 是微软 ONNX Runtime 团队维护的官方示例库,1676 颗星、413 个 Fork,覆盖了从模型转换、量化加速,到多语言 SDK 部署的全链路最佳实践。
仓库按语言和场景划分为多个子目录:
| 模块 | 内容 | 典型场景 |
|---|---|---|
python/ | Python API 示例、OpenVINO EP、AzureML 集成 | 快速实验、云端部署 |
c_cxx/ | C/C++ 端到端示例(MNIST、ImageNet、FNS-Candy 风格迁移) | Windows/Linux 高性能服务 |
quantization/ | INT8/FP16 量化(图像分类、LLM、NLP、目标检测、QAT) | 生产环境压缩加速 |
mobile/ | MAUI、Xamarin、React Native、Swift 示例 | iOS/Android 移动端部署 |
js/ | JavaScript/Node.js API 示例 | Web 端推理、Electron |
c_sharp/ | C# OpenVINO EP 示例 | .NET 生态集成 |
swift/ | iOS/macOS Swift 示例 | Apple 生态 |
plugin_execution_providers/ | QNN 等第三方执行提供者插件 | 高通 DSP、专用硬件 |
每个子目录都是一个独立项目,包含完整的代码、依赖配置和编译/运行说明。
量化是最直接的性能提升手段。quantization/ 目录提供了详细的量化示例,覆盖主流任务:
图像分类量化(CPU/TensorRT/MIGraphX):
语言模型量化(GPT-2/LLaMA):
目标检测量化(TensorRT):
QAT(Quantization-Aware Training):
transformer_qat 示例展示如何在训练阶段引入量化模拟,使量化后精度损失最小化ONNX Runtime 的核心设计是**执行提供者(Execution Provider)**机制——同一个 API,切换不同 EP 自动利用对应硬件加速:
plugin_execution_providers/)python/OpenVINO_EP/ 提供了 YOLOv2/v4 目标检测的 OpenVINO 加速示例,c_cxx/OpenVINO_EP/ 提供了 SqueezeNet 的 C++ OpenVINO 实现。
ONNX Runtime 支持几乎所有主流开发语言:
python/api/ 目录包含最小化 API 用法演示(compile_api.py、device_bindings.py、getting_started.py)js/ 目录包含 tensor/ORTEnv/sessionOptions/inference 等核心 API 的完整用法,还包括 React Native 集成示例pip install onnxruntime
python python/api/getting_started.py
每个 Python 示例目录都有独立的 requirements.txt,开箱即用。python/azureml/ 目录还提供了 Azure Machine Learning 云端部署的完整示例,展示了如何在 Azure 上配置 GPU 实例并运行 ONNX 模型推理。
# 下载预编译 ONNX Runtime
# cmake 构建 + 链接
C++ 示例依赖 CMake 3.0+ 和预编译 ONNX Runtime 包,开发门槛略高于 Python,但性能更可控。
mobile/examples/ 提供了 MAUI(跨平台 .NET UI)、Xamarin.Forms、React Native 和 Swift 的端到端示例,包含 Qwen 问答模型在 iOS 上的部署。移动端示例需要额外的 ONNX Runtime Mobile 包构建流程,复杂度较高。
| 维度 | 评分 | 说明 |
|---|---|---|
| 环境复杂度 | 中等 | Python 示例简单,C++/移动端较复杂 |
| 硬件依赖 | 低 | CPU 可运行,GPU 可选(CUDA EP) |
| 编译依赖 | 较高 | C++ 需要 CMake,预编译包约 200MB |
| 多平台支持 | 极高 | Windows/Linux/macOS/iOS/Android/Web 全覆盖 |
快速部署指数:不支持。本仓库为纯代码示例合集,无 Dockerfile/Compose 等容器化配置,无法一键启动。每个子项目需按各自指南配置环境。
ONNX Runtime 背靠微软,目前在 GitHub 拥有 21,663 颗星,是 ML 推理领域最活跃的开源项目之一。这个示例库的意义不仅在于提供代码,更在于展示了推理优化的完整思维框架:
对于 AI 开发者,这个仓库是理解 ONNX 生态的最佳入口;对于 AI 爱好者,它是了解 ML 模型从训练到生产部署全貌的一扇窗口。ORT 的增长曲线反映了一个趋势:随着大模型从训练走向推理部署,高性能推理引擎将成为 AI 基础设施的核心组件,其重要性不亚于深度学习框架本身。