🥸概述

神经网络的深度学习是通过对数据流图的计算来实现的。一些框架(如 CNTK、Caffe2、Theano 和 TensorFlow)使用静态图,而另一些框架(如 PyTorch 和 Chainer)则使用动态图。不过,它们都提供了接口,使开发人员可以轻松构建计算图和runtime,以优化的方式处理计算图。图作为一种中间表示(IR),可以捕捉开发者源代码的特定意图,并有利于优化和转换,以便在特定设备(CPU、GPU、FPGA 等)上运行。

Why a common IR?

如今,每个框架都有自己专有的计算图表示法,尽管它们都提供类似的功能--这意味着每个框架都是 API、计算图和runtime的孤立堆栈。此外,框架通常会针对某些特性进行优化,如快速训练、支持复杂的网络架构、在移动设备上进行推理等。 开发人员可以选择针对这些特征进行优化的框架。

我们的目标是实现人工智能的民主化,因此我们设想让开发人员能够在开发或部署的任何阶段选择最适合其项目的框架。开放神经网络交换(ONNX)格式是一种通用的 IR,有助于建立这一强大的生态系统。

通过提供计算图的通用表示法,ONNX 可以帮助开发人员选择适合其任务的框架,使作者能够专注于创新,并使硬件供应商能够简化其平台。

ONNX 是一种开放格式。我们欢迎来自社区的贡献,并鼓励每个人在其生态系统中使用 ONNX。

Last updated