ONNX Runtime

ONNX Runtime(简称 ORT)是一个跨平台、高性能的机器学习模型推理引擎。 它专门用来加载和运行 .onnx 格式的模型,让训练好的模型能在不同硬件和不同编程语言中高效执行。

核心特点

  • 跨平台:Windows、Linux、macOS、Android、iOS、Web 都能用。

  • 跨语言:提供 Python、C++、C#、Java、JavaScript、Objective-C、Swift 等 API。

  • 高性能:底层用 C++ 实现,会对计算图做优化,比如算子融合、常量折叠、内存复用。

  • 硬件加速 :通过 Execution Provider(执行提供者) 支持不同硬件:

    • CPU:默认,所有平台可用

    • CUDA / TensorRT:NVIDIA GPU

    • DirectML:Windows GPU

    • OpenVINO:Intel

    • CoreML:Apple

    • NNAPI:Android

    • ROCm:AMD

  • 支持量化:可以把 FP32 模型转成 INT8,减小体积、提升速度。

  • 主要做推理:也支持 ONNX Runtime Training,但绝大多数人用它做推理部署。

"模型→ ONNX → Java"

Java 代码里的这些对象都来自 ONNX Runtime:

复制代码
OrtEnvironment env = OrtEnvironment.getEnvironment();
OrtSession session = env.createSession("decision_tree.onnx", options);
OnnxTensor inputTensor = OnnxTensor.createTensor(env, buffer, shape);
OrtSession.Result results = session.run(inputs);
  • OrtEnvironment:全局运行环境

  • OrtSession:加载模型后的会话,负责执行推理

  • OnnxTensor:输入/输出张量

  • session.run():真正执行计算

底层其实是 Java 通过 JNI 调用 ONNX Runtime 的 C++ 核心。

为什么需要它?

如果没有 ONNX Runtime,你有几种选择:

  • 用 Python 部署:但 Java 项目不好直接调用。

  • 自己写推理代码:决策树还好,深度学习模型几乎不可能。

  • 用厂商专用推理框架:比如 TensorRT、OpenVINO,但会绑定硬件。

ONNX Runtime 的好处是:一次导出 ONNX,到处运行 。同一份 .onnx 文件,可以在 Java、Python、C#、手机端、浏览器里用同一套运行时执行,硬件不同时只需切换 Execution Provider。

常见用途

  • 把 PyTorch/TensorFlow/scikit-learn 模型部署到 Java 后端

  • 移动端离线 AI 推理

  • 浏览器内 Web AI

  • 边缘设备、IoT

  • 模型加速和量化

  • 多框架模型统一部署

一句话总结

ONNX Runtime 是 ONNX 模型的官方级高性能推理引擎。

你训练模型时用什么框架都行,只要导出成 ONNX,就可以用 ONNX Runtime 在 Java、Python、C++ 等环境中加载执行。它不负责训练,只负责把模型跑起来,并且尽量跑得快、跑得跨平台。

补充:什么是边缘设备?

1、边缘设备是什么?

"边缘"是相对于"云端"说的。

可以粗略分三层:

层级 位置 例子
云端 数据中心 阿里云、AWS、Azure 服务器
边缘 靠近数据源 边缘网关、路由器、基站、工厂工控机
终端 直接接触用户/环境 手机、摄像头、手表、传感器、车机

边缘设备通常指:

  • 边缘网关

  • 工业电脑

  • 智能路由器

  • 基站设备

  • 车载计算盒

  • 带算力的摄像头

  • 树莓派、Jetson Nano、Jetson Orin

  • 手机、平板也可以算终端/边缘设备

2、 IoT 是什么?

IoT = Internet of Things,物联网。

它强调的是:普通物品也能联网、感知、上报数据、被控制。

例子:

  • 智能门锁、智能灯泡、智能插座

  • 智能手表、手环、健康监测设备

  • 车载传感器、共享单车锁

  • 农业里的土壤湿度传感器

  • 工厂里的温度、振动、压力传感器

  • 摄像头、烟感、水表、电表

这些设备通常有:

  • 传感器:采集数据

  • 网络模块:Wi-Fi、蓝牙、4G/5G、LoRa、Zigbee

  • 少量计算能力:单片机、MCU、低功耗芯片

  • 有时带 AI 推理能力

传统 IoT 很多只是"采集数据 → 上传云端 → 云端分析"。

现在越来越多 IoT 设备开始本地做 AI,比如智能摄像头直接识别人形,不再把所有视频传云。

相关推荐
打工仔折腾 AI8 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
陈嘿萌13 小时前
Fusion Anything Model:面向通用多模态融合的基座模型
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
老鱼说AI14 小时前
SNN脉冲神经网络:全连接、卷积与循环SNN
人工智能·深度学习·神经网络·机器学习·自然语言处理
程序猿编码14 小时前
纯 C++ 手写 LLM 推理引擎:分页 KV 缓存、连续批、多卡张量并行全部内置
c++·深度学习·缓存·大模型推理·自动微分·模型推理
在所不辞兄15 小时前
【零基础学智能仿真-62】从应变—应力计算弹性常数
人工智能·深度学习·神经网络·机器学习·有限元·智能仿真
STLearner15 小时前
KDD 2026 | (2月轮)时空数据(Spatial-Temporal)论文总结时空【下】(人群移动,城市科学(资源调度,)
大数据·人工智能·python·深度学习·机器学习·语言模型·数据挖掘
数聚天成DeepSData16 小时前
第三方地图工具导出的 Landsat 影像,使用条件和 USGS 官方下载的一样吗
人工智能·深度学习·机器学习·数据集·deepsdata
啥都鼓捣的小yao17 小时前
Vision Transformer(ViT)深入浅出
人工智能·深度学习·transformer
计算机毕业编程指导师17 小时前
计算机毕设推荐:基于深度学习的动物图像识别方法研究(Python+Django+PyTorch)
pytorch·python·深度学习·计算机·毕业设计·课程设计·图像识别
X54先生(人文科技)18 小时前
ELR-SELLM_硅基伙伴通过对话碰撞个性涌现的推理架构_v10
人工智能·深度学习·架构·零知识证明