ONNX简介

简介: Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

简介


Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。


ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互。 ONNX的规范及代码主要由微软,亚马逊 ,Facebook 和 IBM 等公司共同开发,以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型并进行推理的深度学习框架有: Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持ONNX。---维基百科


假设一个场景:现在某组织因为主要开发用TensorFlow为基础的框架,现在有一个深度算法,需要将其部署在移动设备上,以观测变现。传统地我们需要用caffe2重新将模型写好,然后再训练参数;试想下这将是一个多么耗时耗力的过程。

此时,ONNX便应运而生,Caffe2,PyTorch,Microsoft Cognitive Toolkit,Apache MXNet等主流框架都对ONNX有着不同程度的支持。这就便于了我们的算法及模型在不同的框架之间的迁移。


ONNX


开放式神经网络交换(ONNX)是迈向开放式生态系统的第一步,它使AI开发人员能够随着项目的发展选择合适的工具。 ONNX为AI模型提供开源格式。 它定义了可扩展的计算图模型,以及内置运算符和标准数据类型的定义。 最初的ONNX专注于推理(评估)所需的功能。 ONNX解释计算图的可移植,它使用graph的序列化格式。 它不一定是框架选择在内部使用和操作计算的形式。 例如,如果在优化过程中操作更有效,则实现可以在存储器中以不同方式表示模型。


ONNX是一个开放式规范,由以下组件组成:

可扩展计算图模型的定义

标准数据类型的定义

内置运算符的定义


参考资料



相关文章
|
4月前
|
机器学习/深度学习 存储 TensorFlow
TensorFlow 基础实战
TensorFlow 基础实战
|
6月前
|
数据采集 PyTorch 算法框架/工具
PyTorch应用实战四:基于PyTorch构建复杂应用
PyTorch应用实战四:基于PyTorch构建复杂应用
57 0
|
8月前
|
机器学习/深度学习 算法 TensorFlow
Darknet19详细原理(含tensorflow版源码)
Darknet19详细原理(含tensorflow版源码)—— 猫狗分类
94 0
Darknet19详细原理(含tensorflow版源码)
安装onnx
安装onnx
140 0
|
数据可视化 PyTorch 算法框架/工具
使用onnx对pytorch模型进行部署
使用onnx对pytorch模型进行部署
471 0
|
机器学习/深度学习 存储 并行计算
PyTorch的主要组成模块和实战
PyTorch的主要组成模块和实战
100 0
PyTorch的主要组成模块和实战
|
机器学习/深度学习 人工智能 并行计算
PyTorch (1) | PyTorch的安装与简介
PyTorch (1) | PyTorch的安装与简介
137 0
PyTorch (1) | PyTorch的安装与简介
|
机器学习/深度学习 数据采集 并行计算
PyTorch学习笔记(三):PyTorch主要组成模块
(1)数据预处理:通过专门的数据加载,通过批训练提高模型表现,每次训练读取固定数量的样本输入到模型中进行训练 (2)深度神经网络搭建:逐层搭建,实现特定功能的层(如积层、池化层、批正则化层、LSTM层等) (3)损失函数和优化器的设定:保证反向传播能够在用户定义的模型结构上实现 (4)模型训练:使用并行计算加速训练,将数据按批加载,放入GPU中训练,对损失函数反向传播回网络最前面的层,同时使用优化器调整网络参数
174 0
|
存储 PyTorch 算法框架/工具
PyTorch学习笔记(四):PyTorch基础实战
通过一个基础实战案例,结合前面所涉及的PyTorch入门知识。本次任务是对10个类别的“时装”图像进行分类,使用FashionMNIST数据集(fashion-mnist/data/fashion at master · zalandoresearch/fashion-mnist · GitHub
154 0
|
机器学习/深度学习 人工智能 PyTorch
PyTorch学习笔记(二):PyTorch简介与基础知识
概念:由Facebook人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库 优势:简洁、上手快、具有良好的文档和社区支持、项目开源、支持代码调试、丰富的扩展库
118 0