![]() | This articlecontainspromotional content. Please helpimprove it by removingpromotional language and inappropriateexternal links, and by adding encyclopedic text written from aneutral point of view.(February 2025) (Learn how and when to remove this message) |
![]() | |
Original author(s) | Facebook,Microsoft |
---|---|
Developer(s) | Linux Foundation |
Initial release | September 2017; 7 years ago (2017-09) |
Stable release | |
Repository | |
Written in | C++,Python |
Operating system | Windows,Linux |
Type | Artificial intelligence ecosystem |
License | initiallyMIT License; later changed toApache License 2.0 |
Website | onnx![]() |
TheOpen Neural Network Exchange (ONNX) [ˈɒnɪks][2] is anopen-sourceartificial intelligence ecosystem[3] of technology companies and research organizations that establish open standards for representing machine learning algorithms and software tools to promote innovation and collaboration in the AI sector. ONNX is available onGitHub.
ONNX was originally named Toffee[4] and was developed by thePyTorch team atFacebook.[5] In September 2017 it was renamed to ONNX and announced by Facebook andMicrosoft.[6] Later,IBM,Huawei,Intel,AMD,Arm andQualcomm announced support for the initiative.[3]
In October 2017, Microsoft announced that it would add itsCognitive Toolkit andProject Brainwave platform to the initiative.[3]
In November 2019 ONNX was accepted as graduate project in Linux Foundation AI.[7]
In October 2020 Zetane Systems became a member of the ONNX ecosystem.[8]
The initiative targets:
Allow developers to more easily move between frameworks, some of which may be more desirable for specific phases of the development process, such as fast training, network architecture flexibility or inferencing on mobile devices.[6]
Allow hardware vendors and others to improve the performance ofartificial neural networks of multiple frameworks at once by targeting the ONNX representation.[6]
ONNX provides definitions of an extensible computation graph model, built-in operators and standarddata types, focused on inferencing (evaluation).[6]
Each computationdataflow graph is a list of nodes that form anacyclic graph. Nodes have inputs and outputs. Each node is a call to an operator. Metadata documents the graph. Built-in operators are to be available on each ONNX-supporting framework.[6]