ONNX 的核心原理

ONNX:

把不同深度学习框架里的模型,统一描述成一种标准的计算图。

YOLO模型原来是PyTorch的yolo.pt,里面包含:

网络结构和权重

导出ONNX后,会把Pytorch中的网络计算过程转换成ONNX能理解的标准结构。

ONNX模型主要包含三类东西:

计算图:规定数据按什么顺序流动。

算子:例如Conv、Add、Mul、Concat、Resize。

参数/权重:例如卷积核权重、Bias等。

ONNX本质上不是一个训练框架,而更像一个中间标准格式。

Pytorch-->.pt-->.onnx--> TensoRT/openVINO/Sophon/ONNX Runtime

它解决的问题是不同框架、不同硬件之间直接转换很麻烦。ONN在中间充当翻译。

拿一个简单卷积网络来说,PyTorch的代码可能是:

x = conv(x)

x = relu(x)

x = pool(x)

导出ONNX后,不再关心这段PyTorch Python代码,而变成:

Input

Conv

Relu

MaxPool

Output

部署框架读取这个计算图,就知道先做卷积、再做激活、再做池化。

因此,ONNX的运行逻辑就是:

输入 Tensor

按照计算图执行算子

读取模型权重参与计算

生成中间 Tensor

继续执行下一个算子

最终输出

相关推荐
狂炫冰美式12 分钟前
电脑合盖之后 Cursor 还在偷我电?看看为啥
前端·人工智能·后端
程序员三明治13 分钟前
【体验毛坯房】Deep Harness 入门教程
java·人工智能·后端·大模型·llm·deepseek·dsh
Magic-ZYJ20 分钟前
HarmonyOS Navigation 实战:NavPathStack 跳转、传参、返回和路由表一次讲清
人工智能·pytorch·深度学习
新知图书26 分钟前
9.4 功能测试与效果验证
人工智能·功能测试
成都佳洋光电科技有限公司26 分钟前
短波红外相机在穿透烟、雾、霾中的应用
人工智能·工业相机·工业镜头·短波红外·红外热像仪
9i编程30 分钟前
6. 对SKILL进行一次全新尝试,改为框架+细节方式的实践及验证:admin-web联调与bug修复
人工智能·openai·ai编程
别动我齐刘海31 分钟前
从0到1独立搭建机器人软件系统
c++·人工智能·神经网络·opencv·目标检测·机器学习·机器人
夏夜霜32 分钟前
糖球系列③:ESP 圆屏不跑模型,它只是后台的语音客户端
人工智能