一、什么是ONNX
Open Neural Network Exchange (ONNX)是开放生态系统的第一步,它使人工智能开发人员可以在项目的发展过程中选择合适的工具。
ONNX为AI models提供了一种开源 格式 。它定义了一个可以扩展的计算图模型,同时也定义了内置操作符和标准数据类型。最初我们关注的是推理(评估)所需的能力。
Caffe2, PyTorch, Microsoft Cognitive Toolkit, Apache MXNet 和其他工具都在对ONNX进行支持。在不同的框架之间实现互操作性,并简化从研究到产品化的过程,将提高人工智能社区的创新速度。
假设一个场景:现在某组织因为主要开发用TensorFlow为基础的框架,现在有一个深度算法,需要将其部署在移动设备上,以观测变现。传统地我们需要用caffe2重新将模型写好,然后再训练参数;试想下这将是一个多么耗时耗力的过程。此时,ONNX便应运而生,Caffe2,PyTorch,Microsoft Cognitive Toolkit,Apache MXNet等主流框架都对ONNX有着不同程度的支持。这就便于了我们的算法及模型在不同的框架之间的迁移。
1、Pytorch转ONNX的意义
一般来说转ONNX只是一个手段,在之后得到ONNX模型后还需要再将它做转换,比如转换到TensorRT上完成部署,或者有的人多加一步,从ONNX先转换到caffe,再从caffe到tensorRT。原因是Caffe对tensorRT更为友
ONNX(Open Neural Network Exchange)是一种开放的模型格式,旨在促进不同AI框架之间的互操作性。通过定义计算图模型和内置操作符,ONNX允许模型在PyTorch、Caffe2等框架间转换,简化从研究到产品化的流程。ONNX与TensorRT、ONNXRuntime等后端配合,实现高效推理。 Protobuf作为序列化协议用于存储模型权重信息,而netron则是一个用于可视化的工具。
订阅专栏 解锁全文
:开放神经网络交换【类似json格式】【用于表示深度学习模型的标准,可使模型在不同框架之间转移】【可视化工具:netron】&spm=1001.2101.3001.5002&articleId=123399032&d=1&t=3&u=fcf8ed9dcc50428cb4d3e7b0d1c12837)
7818

被折叠的 条评论
为什么被折叠?



