Open Neural Network Exchange
ONNXのモデルはPythonスクリプトから生成したり(#例を参照)、他のフレームワークから変換したりすることで作ることができる。他のフレームワークからの変換には以下のような方法が存在する:
ONNXMLTools - 様々なフレームワークからの変換を行う。
PyTorchの標準ONNXエクスポータ (torch)
tf2onnx - TensorFlowからの変換を行う。
sklearn-onnx (skl2onnx) - scikit-learnからの変換を行う
またONNXのモデル集としては以下が存在する;
ONNX Model Zoo
ONNXのビルトイン演算子はサブ仕様 Operator specifications により定義される。3種類の演算子セット(Opset)ai.onnx, ai.onnx.ml, ai.onnx.training が定義されており、ai.onnx がデフォルトである。2022年12月12日現在、ai.onnx の最新バージョンは version 18 である。
例えばOpset ai.onnx v15ではRNN系演算子として RNN 、LSTM 、GRU が定義されている。
2017年9月に、FacebookとMicrosoftは、PyTorchやCaffe2などの機械学習フレームワーク間において相互運用を可能にする為の取り組みとして、このプロジェクトを始動した。その後、IBM、Huawei、Intel、AMD、ARM、Qualcommがこの取り組みに対して積極的な支援を表明した。
2017年10月に、MicrosoftはCognitive ToolkitおよびProject Brainwaveプラットフォームにおいて、ONNXのサポートを発表した。
2019年11月、ONNXはLinux Foundation AIの卒業生プロジェクトとして承認された。
以下の特性を補完する意図にて開発が進められた。