# ONNX

ONNX (Open Neural Network Exchange) is an open-source ecosystem and standard format for representing machine learning models, enabling interoperability across frameworks and hardware. It was announced in 2017 by Facebook and Microsoft, later adopted by the Linux Foundation.

The Open Neural Network Exchange (ONNX) is an open-source ecosystem and standard format for representing machine learning models. It provides a common representation for [AI](https://www.wikiprompt.org/wiki/artificial-intelligence) algorithms, allowing models to be transferred between different frameworks, tools, and hardware platforms. Governed by a collaborative community of technology companies and research organizations, ONNX aims to streamline the development and deployment of [neural networks](https://www.wikiprompt.org/wiki/neural-network) and other machine learning systems.

ONNX is available on GitHub, where its specifications, operators, and tooling are maintained. The format defines an extensible computation graph model, built-in operators, and standard data types, focusing primarily on inference (evaluation) rather than training. It uses Protocol Buffers as its container format, ensuring efficient serialization and compatibility across languages and systems.

## History

ONNX was initially developed under the codename "Toffee" by the PyTorch team at Facebook. In September 2017, it was renamed to ONNX and publicly announced by Facebook and Microsoft. The announcement positioned the format as a way to foster interoperability in the rapidly growing field of [deep learning](https://www.wikiprompt.org/wiki/deep-learning).

In the months following the launch, several major technology firms declared support for the initiative, including IBM, Huawei, [Intel](https://www.wikiprompt.org/wiki/intel), [AMD](https://www.wikiprompt.org/wiki/amd), [Arm](https://www.wikiprompt.org/wiki/arm-holdings), and [Qualcomm](https://www.wikiprompt.org/wiki/qualcomm). In October 2017, Microsoft expanded its commitment by announcing that its Cognitive Toolkit and Project Brainwave platform would integrate with ONNX. The following year, the project gained broader institutional backing: in November 2019, ONNX was accepted as a graduate project under the Linux Foundation AI, a move that solidified its governance and open-source status. In October 2020, Zetane Systems joined the ONNX ecosystem as a member, further broadening the community.

## Intent

The primary goal of ONNX is to enable framework interoperability. Developers can create models in one framework, such as PyTorch or TensorFlow, and export them to the ONNX format for use in another environment. This capability is particularly valuable during different stages of the development pipeline, including training, architecture design, model evaluation, and deployment on mobile or embedded devices. By decoupling model representation from specific software stacks, ONNX reduces vendor lock-in and simplifies collaboration across teams.

Another key objective is shared optimization. ONNX provides a common representation that hardware vendors and software developers can use to apply performance optimizations to neural network models across multiple frameworks simultaneously. This means that a single optimization technique, such as operator fusion or quantization, can benefit models originating from different sources, accelerating execution on GPUs, CPUs, and specialized [AI accelerators](https://www.wikiprompt.org/wiki/aws-trainium).

## Format and Structure

ONNX models are represented as directed acyclic graphs (DAGs), where each node corresponds to an operator call. Nodes have defined inputs and outputs, forming a dataflow graph that describes the computation. The graph is accompanied by metadata that documents properties such as model version, author, and training information. Built-in operators are guaranteed to be available on every ONNX-compliant framework, ensuring a baseline level of functionality across implementations.

The format is extensible, allowing custom operators and data types to be added for specialized use cases. This flexibility has made ONNX a bridge between research frameworks like PyTorch and production environments, as well as between edge devices and cloud infrastructure.

## Ecosystem and Adoption

ONNX has grown to include contributions from a wide range of organizations, including cloud providers, semiconductor companies, and research labs. These partners have developed tools for converting models to and from ONNX, as well as runtime engines that execute ONNX graphs efficiently. The ecosystem supports major frameworks such as PyTorch and TensorFlow, enabling a smooth transition from training to deployment.

Hardware vendors use ONNX as a common target for optimization. By applying performance tuning to ONNX graphs, they can reach a broad audience of models without tailoring solutions to each framework. This has made ONNX a key component in the deployment of models on devices ranging from mobile phones to [cloud servers](https://www.wikiprompt.org/wiki/azure).

The Linux Foundation AI hosts the project, providing vendor-neutral governance and fostering collaboration among competitors. This structure mirrors other open-source AI initiatives and ensures that the standard evolves with input from multiple stakeholders.

## Contents and Technical Structure

At its core, ONNX defines an extensible computation graph model. Each graph is a list of nodes that form an acyclic structure, where nodes have inputs and outputs, and each node represents a call to an operator. The graph is documented with metadata, which can include information about the model's purpose, version, and author. Built-in operators, such as matrix multiplication, convolution, and activation functions, are specified to be available on any ONNX-supporting framework, ensuring consistency.

The container format is Protocol Buffers, a language-neutral serialization mechanism that is compact and widely supported. This choice facilitates the exchange of models across diverse programming environments, including C++, Python, and Java.

## Operational Workflow

A typical ONNX workflow involves training a model in a single framework, such as PyTorch or TensorFlow, and then exporting it to the ONNX format. This export process captures the model's computational graph, including its operators and parameters, in a standardized file. Once in ONNX format, the model can be loaded into other systems for testing, validation, or production deployment.

Because ONNX is hardware-agnostic, the same model file can be executed on different runtime environments, including CPUs, GPUs, and custom AI chips. This flexibility is essential for modern AI applications, where training might occur on high-performance clusters but inference needs to run on edge devices with limited resources. The common representation also facilitates benchmarking and comparison of models across frameworks.

## Ecosystem and Adoption

ONNX has been adopted by a wide range of organizations in the [AI](https://www.wikiprompt.org/wiki/artificial-intelligence) industry permits, including cloud providers, chipmakers, and software developers. Its governance under the Linux Foundation AI has helped ensure transparency and community-driven evolution. The project's specifications are versioned and maintained publicly, allowing contributions from researchers and engineers around the world.

## See Also

- [Machine Learning](https://www.wikiprompt.org/wiki/machine-learning)
- [Large Language Model](https://www.wikiprompt.org/wiki/large-language-model)
- [Generative AI](https://www.wikiprompt.org/wiki/generative-ai)
- [Transformer](https://www.wikiprompt.org/wiki/transformer)

## Categories

- machine-learning
- open-source
- interoperability
- neural-networks

---
Source: https://www.wikiprompt.org/wiki/onnx
License: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/)
Last updated: 2026-09-07T02:31:36.528185+00:00
