The world of deep learning frameworks is complex. It seems that every major company has their own product in this space. Some have great features, others have great performance, so its very difficult to choose the right one. But what if you didn’t have to limit your choice to just one? What if you could use the most developer-friendly framework for designing a neural network, the most efficient framework for training and finally the lightest one for inference on edge devices? That’s the idea people at Facebook, Microsoft and Amazon were thinking about when they created the ONNX format.
Open Neural Network Exchange (ONNX) is a binary file format, based on Protocol Buffers, designed to store representations of neural networks. Networks are stored as computational graphs and the format supports saving both the network architecture and trained weighs.
ONNX is an open standard and it’s gaining broad community support. Tools already exist for importing and exporting models from frameworks such as Caffe2, PyTorch, Microsoft Cognitive Toolkit (CNTK), Apache MXNet, Chainer, TensorFlow, SciKit-Learn. ONNX support will be built directly into Windows and Apple’s CoreML. Runtimes exist for other environments such as servers and neural network accelerators (Intel’s nGraph), GPUs (NVIDIA’s TensorRT) and more. Other tools such as Netron and Visual DL allow you to visualize and inspect your ONNX models.
My poster will describe the capabilities of ONNX and demonstrate them through code samples and screenshots. We’ll also cover ONNX’s current limitations and areas of future development.