Open Neural Network Exchange
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Bump docker image version to 230 used in CircleCI (#1606) Nov 12, 2018
.travis print some information (#1724) Jan 10, 2019
cmake fix ninja external (#1507) Oct 13, 2018
conda Merge release branch back to master (#512) Feb 7, 2018
docs Add TfIdfVectorizer operator to ONNX (#1721) Jan 22, 2019
onnx Add TfIdfVectorizer operator to ONNX (#1721) Jan 22, 2019
stubs Fix .gitignore and add missing files (#1005) May 22, 2018
third_party Update Google benchmark to 1.4.1 (#1083) Jun 7, 2018
tools Fix 'line break after binary operator' flake8 warnings. (#1550) Oct 24, 2018
.clang-format Add clang-format rules file Nov 4, 2017
.gitignore Broadcast Version Conversion Adapters (Add, Mul, Gemm) (#1284) Aug 24, 2018
.gitmodules Microbenchmark for encoding+decoding ModelProto and GraphProto with a… Mar 15, 2018
.travis.yml Add support for building with protobuf-lite (#1326) Aug 28, 2018
CMakeLists.txt Set symbol visibility to hidden for non-Windows (#1707) Dec 26, 2018
LICENSE Bulk commit for releasing Open Neural Network Exchange (ONNX) Sep 7, 2017 ONNX v1.3.0 release (#1359) Aug 31, 2018 Update (#1722) Jan 9, 2019 Spec clarity: Versioning (#931) May 16, 2018
VERSION_NUMBER Bump up version number for v1.4.0 (#1761) (#1763) Jan 23, 2019
appveyor.yml Make CI log less verbose (#1595) Nov 9, 2018
pyproject.toml Try using pep518 to install the protobuf build dependency (#782) Apr 19, 2018
setup.cfg Make CI log less verbose (#1595) Nov 9, 2018 Make CI log less verbose (#1595) Nov 9, 2018

Linux Windows
Build Status Build status

Open Neural Network Exchange (ONNX) is an open ecosystem that empowers AI developers to choose the right tools as their project evolves. ONNX provides an open source format for AI models, both deep learning and traditional ML. It defines an extensible computation graph model, as well as definitions of built-in operators and standard data types. Currently we focus on the capabilities needed for inferencing (scoring).

ONNX is widely supported and can be found in many frameworks, tools, and hardware. Enabling interoperability between different frameworks and streamlining the path from research to production will increase the speed of innovation in the AI community. We invite the community to join us and further evolve ONNX.


Learn about the ONNX spec

Programming utilities for working with ONNX Graphs


ONNX is a community project. We encourage you to join the effort and contribute feedback, ideas, and code. You can join one of the working groups and help shape the future of ONNX.

Check out our contribution guide and call for contributions to get started.

If you think some operator should be added to ONNX specification, please read this document.


We encourage you to open Issues, or use Gitter for more real-time discussion: Join the chat at

Follow Us

Stay up to date with the latest ONNX news. [Facebook] [Twitter]



A binary build of ONNX is available from Conda, in conda-forge:

conda install -c conda-forge onnx


You will need an install of protobuf and numpy to build ONNX. One easy way to get these dependencies is via Anaconda:

# Use conda-forge protobuf, as default doesn't come with protoc
conda install -c conda-forge protobuf numpy

You can then install ONNX from PyPi (Note: Set environment variable ONNX_ML=1 for onnx-ml):

pip install onnx

You can also build and install ONNX locally from source code:

git clone
cd onnx
git submodule update --init --recursive
python install

Note: When installing in a non-Anaconda environment, make sure to install the Protobuf compiler before running the pip installation of onnx. For example, on Ubuntu:

sudo apt-get install protobuf-compiler libprotoc-dev
pip install onnx

After installation, run

python -c "import onnx"

to verify it works. Note that this command does not work from a source checkout directory; in this case you'll see:

ModuleNotFoundError: No module named 'onnx.onnx_cpp2py_export'

Change into another directory to fix this error.


ONNX uses pytest as test driver. In order to run tests, first you need to install pytest:

pip install pytest nbval

After installing pytest, do


to run tests.


Check out contributor guide for instructions.


MIT License

Code of Conduct

ONNX Open Source Code of Conduct