ONNX For AI Model Interoperability
Written by Alex Armstrong   
Monday, 11 September 2017

Unlikely as the collaboration seems, Microsoft and Facebook have co-developed the Open Neural Network Exchange (ONNX) format as an open source project.

The GitHub Readme provides a clear and succinct statement of what the joint project is:

Open Neural Network Exchange (ONNX) is the first step toward an open ecosystem that empowers AI developers to choose the right tools as their project evolves. ONNX provides an open source format for AI models. It defines an extensible computation graph model, as well as definitions of built-in operators and standard data types.

 

networkgraph

Facebook's Joaquin Quinonero Candela explains why this resource is required with:

When developing learning models, engineers and researchers have many AI frameworks to choose from. At the outset of a project, developers have to choose features and commit to a framework. Many times, the features chosen when experimenting during research and development are different than the features desired for shipping to production. Many organizations are left without a good way to bridge the gap between these operating modes and have resorted to a range of creative workarounds to cope, such as requiring researchers work in the production system or translating models by hand.

So ONNX has been provided to help AI developers to switch between frameworks which have their own formats for representing the computation graphs that represent neural networks.

According to Microsoft's Eric Boyd the ONNX representation offers two key benefits: 

  • Framework interoperability
    Developers can more easily move between frameworks and use the best tool for the task at hand. Each framework is optimized for specific characteristics such as fast training, supporting flexible network architectures, inferencing on mobile devices, etc. Many times, the characteristic most important during research and development is different than the one most important for shipping to production. This leads to inefficiencies from not using the right framework or significant delays as developers convert models between frameworks. Frameworks that use the ONNX representation simplify this and enable developers to be more agile.

  • Shared optimization
    Hardware vendors and others with optimizations for improving the performance of neural networks can impact multiple frameworks at once by targeting the ONNX representation. Frequently optimizations need to be integrated separately into each framework which can be a time-consuming process. The ONNX representation makes it easier for optimizations to reach more developers.

Facebook's Caffe2 and Pytorch and Microsoft's Cognitive Toolkit (formerly CNTK) will be releasing support for ONNX in September and Microsoft plans to contribute reference implementations, examples, tools, and a model zoo. The already is a Pytorch tutorial Transfering a model from PyTorch to Caffe2 and Mobile using ONNX.

ONNX works by tracing how a neural network generated using a specific frameworks executes at runtime and then using that information to create a generic computation graph that can be used in another framework. Its success will depend on the range of AI frameworks that it can model. Will we see ONNX representations for Google's TensorFlow, also an open source project and probably the most widely used or for Apache MXNet which is Amazon's preferred AI framework. 

graphsq

More Information

ONNX on GitHub

Facebook and Microsoft introduce new open ecosystem for interchangeable AI frameworks

Microsoft and Facebook create open ecosystem for AI model interoperability 

Related Articles

Microsoft Cognitive Toolkit Version 2.0

NVIDA Updates Free Deep Learning Software

TensorFlow - Googles Open Source AI And Computation Engine

AIGoes Open Source To The Tune Of $1 Billion 

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


OpenAI Library For .NET Exits Beta
19/11/2024

A few months ago the OpenAI .NET library was released as a beta. It has now reached version 2.0.0 and the time has come to leave beta and, with a few amendments enter production readiness.



AI Breakthrough For Robot Surgery
17/11/2024

Using imitation learning, a robot has learned to perform surgical procedures as skillfully as human surgeons, bringing the field of robotic surgery closer to true autonomy.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 It works by tracing how a neural network generated using a specific frameworks executes at runtime and then using that information to create a generic computation graph that can be used in another framework.
Last Updated ( Monday, 11 September 2017 )