ONNX是什么?怎么用?[简明解读版]

ONNX是一个开源格式,用于在不同机器学习框架间转换AI模型,专注于推理能力。它定义了可扩展的计算图模型,支持多种神经网络功能。尽管ONNX简化了模型转换,但不同后端设备对ONNX文件的要求可能不同,可能导致兼容性问题。实践中,ONNX在版本更新和兼容性方面可能存在挑战,需要不断调整以适应新功能和框架更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念 

​​​​​​​​​​​​​​Open Neural Network Exchange (ONNX) 

ONNX 为深度学习和传统 ML 的 AI 模型提供开源格式。它定义了一个可扩展的计算图模型,以及内置运算符和标准数据类型的定义。目前,专注于推理(评分)所需的能力。 

ONNX 是一个中间机器学习框架,用于在不同的机器学习框架之间进行转换。因此,假设您的模型在 TensorFlow 中,但想要在TensorRT中使用,或者模型在PyTorch中,想要在TFLite中使用。ONNX 是一个很好的中介,用于在您通过这些不同的机器学习框架时转换您的模型。

ONNX 已经非常努力地在这些机器学习模型中基本实现了各种不同的神经网络功能和不同的功能,因此可以支持这种cross功能实现对基线、通用框架的转换。

ONNX has worked really hard to basically implement all kinds of different neural network functions and different functionalities in these machine learning models, so we can support this cross functionality to have baseline, common framework to convert into.

问题和坑

ONNX只是一个格式,就和json一样。只要你满足一定的规则,都算是合法的,因此单纯从Pytorch转成一个ONNX文件很简单。但是不同后端设备接受的onnx是不一样的,因此这才是坑的来源。Pytorch自带的torch.onnx.export转换得到的ONNX,ONNXRuntime需要的ONNX,TensorRT需要的ONNX都是不同的。

一件事是,随着 ONNX(一种开源工具)的构建,他们正在向其中构建新功能。他们试图跟踪机器学习中正在进行的所有新研究,但这些版本可能会落后,你知道,你可以拥有一个版本的 TensorFlow,它与一个版本的 ONNX 不兼容,而你有升级和降级这些版本以尝试找到通过它们的途径,甚至可能编辑您的模型。 

 

实战应用

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子燕若水

吹个大气球

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值