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

相关推荐
hhzz5 小时前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Rocky Ding*6 小时前
深入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、Qwen-Image、GLM-Image核心基础知识
论文阅读·人工智能·深度学习·机器学习·aigc·扩散模型·ai-native
小明科普7 小时前
酷狗 kgg 转 MP3 踩坑:别再把歌词文件当歌转了
深度学习
凡达Ai派9 小时前
AI画布交付文件总是混在一起?用源文件、预览图和发布图三层目录分开管理
图像处理·深度学习·神经网络·自然语言处理·知识图谱
薛定e的猫咪10 小时前
(AISTATS 2023)BaCaDI 逐章阅读
人工智能·深度学习·算法·机器学习
凡达Ai派10 小时前
AI画布里的文字总是错位或乱码?把生成、排版和校对拆成三段
图像处理·人工智能·深度学习·神经网络·自然语言处理·知识图谱
数聚天成DeepSData12 小时前
OPUS 不是一份统一许可证的语料:子语料许可如何逐项管理?
人工智能·深度学习·机器学习·数据集·deepsdata
迷路爸爸18013 小时前
梯度消失和梯度爆炸
人工智能·深度学习·机器学习
AI人工智能+14 小时前
医疗机构执业许可证识别技术融合计算机视觉、OCR与大模型,实现手机拍照或上传文件后自动提取证书关键字段信息
深度学习·自然语言处理·ocr·医疗机构执业许可证识别
Ivanqhz14 小时前
KV Cache
服务器·数据库·人工智能·深度学习·算法