ONNX简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ONNX简介相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

可扩展计算图模型的定义
标准数据类型的定义
内置运算符的定义

以上是关于ONNX简介的主要内容,如果未能解决你的问题,请参考以下文章

模型推理加速系列04:BERT加速方案对比 TorchScript vs. ONNX

Pytorch模型(.pth)转onnx模型(.onnx)

ONNX-开放式神经网络交换格式

PyTorch专栏(十三):使用ONNX将模型转移至Caffe2和移动端

模型推理加速系列05: 推理加速格式TorchScript简介及其应用

模型推理加速系列05: 推理加速格式TorchScript简介及其应用