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,比如智能摄像头直接识别人形,不再把所有视频传云。

相关推荐
马剑威(威哥爱编程)1 小时前
【共创稿事节】HarmonyOS 7 Agent A2A 实战:让日程智能体和打车智能体自己谈成一单
pytorch·深度学习·harmonyos
桃西西呀1 小时前
机器眼里没有脸,怎么识别人脸?手写 CNN 拆开卷积层与 BatchNorm
人工智能·深度学习·llm
Rocky Ding*2 小时前
一文读懂Hallo数字人核心基础知识
论文阅读·人工智能·深度学习·机器学习·aigc·数字人·ai-native
倔强的石头1063 小时前
【深度学习】词嵌入技术_从Word2Vec到现代Embedding
人工智能·深度学习·机器学习
LaughingZhu5 小时前
Product Hunt 每日热榜 | 2026-09-15
人工智能·深度学习·神经网络·搜索引擎·百度
棣廷5 小时前
初识深度学习——学习率调度与权重衰减
人工智能·深度学习
江润舟5 小时前
万物 | 炼器 从零手搓工业级旋转目标检测网络 · 卷2 —— 计算图、梯度与反向传播(五)
人工智能·深度学习
罗西的思考6 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 — (2)— 训练
人工智能·深度学习
JAI科研6 小时前
YOLO 完全指南(七):YOLO识别工程化 (上)
人工智能·深度学习·神经网络·yolo·目标检测·计算机视觉·transformer