Today we are announcing that Open Neural Network Exchange (ONNX) is production-ready. ONNX is an open source model representation for interoperability and innovation in the AI ecosystem that Microsoft co-developed. The ONNX format is the basis of an open ecosystem that makes AI more accessible and valuable to all: developers can choose the right framework for their task, framework authors can focus on innovative enhancements, and hardware vendors can streamline optimizations.
ONNX provides a stable specification that developers can implement against. We have incorporated many updates and enhancements, including feedback from the community since the initial announcement to make it work for many AI applications, including vision. ONNX also includes the ONNX-ML profile which provides support for classic machine learning in addition to deep learning.
We are also announcing Microsoft Cognitive Toolkit support for ONNX. You can now import ONNX models into Cognitive Toolkit or export models into ONNX format. We encourage you to install the latest version of Cognitive Toolkit and try out the tutorials for importing and exporting ONNX models. Here is a code snippet that illustrates how ONNX is natively supported:
# Load ONNX model and classify the input image model = C.Function.load(filename, format=C.ModelFormat.ONNX) image_data = np.ascontiguousarray(np.transpose(image_data, (2, 0, 1))) result = np.squeeze(model.eval({model.arguments[0]:[image_data]})) # Save a model to ONNX format mymodel = create_my_model() output_file_path = R”mymodel.onnx“ mymodel.save(output_file_path, format=C.ModelFormat.ONNX)
Full ONNX support for Caffe2, PyTorch, and MXNet will be released by Facebook and Amazon Web Services. The community has also contributed connectors and is creating tools for working with ONNX models such as visualizers. The growing community support adds to the many partners who have announced support for ONNX since its launch.
We’re looking forward to seeing the tools and products you create that integrate ONNX. We’ll be working with the community to add more functionality and support to future versions of ONNX to make it even more useful.
At Microsoft we believe bringing AI advances to all developers, on any platform, using any language, with an open AI ecosystem, will help ensure AI is more accessible and valuable to all. With ONNX and the rest of our Azure AI services, infrastructure and tools such as Azure Machine Learning and Visual Studio Tools for AI, developers and data scientists will be able to deliver new and exciting AI innovations faster.
We invite the community to visit https://onnx.ai to learn more and participate in the ONNX effort. You can also get ONNX updates on Facebook and @onnxai on Twitter.