ONNX Tutorials
Open Neural Network Exchange (ONNX) is an open standard format for representing machine learning models. ONNX is supported by a community of partners who have implemented it in many frameworks and tools.
- Pre-trained models (validated): Many pre-trained ONNX models are provided for common scenarios in the ONNX Model Zoo
- Pre-trained models (non-validated): Many pre-trained ONNX models are provided for common scenarios in the ONNX Model Zoo.
- Services: Customized ONNX models are generated for your data by cloud based services (see below)
- Convert models from various frameworks (see below)
Below is a list of services that can output ONNX models customized for your data.
Once you have an ONNX model, it can be scored with a variety of tools.
Framework / Tool | Installation | Tutorial |
---|---|---|
Caffe2 | Caffe2 | Example |
Cognitive Toolkit (CNTK) | built-in | Example |
CoreML (Apple) | onnx/onnx-coreml | Example |
MATLAB | Deep Learning Toolbox Converter | Documentation and Examples |
Menoh | Github Packages or from Nuget | Example |
ML.NET | Microsoft.ML Nuget Package | Example |
MXNet (Apache) - Github | MXNet | API Example |
ONNX Runtime | See onnxruntime.ai | Documentation |
SINGA (Apache) - Github [experimental] | built-in | Example |
Tensorflow | onnx-tensorflow | Example |
TensorRT | onnx-tensorrt | Example |
Windows ML | Pre-installed on Windows 10 | API Tutorials - C++ Desktop App, C# UWP App Examples |
Vespa.ai | Vespa Getting Started Guide | Real Time ONNX Inference Distributed Real Time ONNX Inference for Search and Passage Ranking |
Tutorials demonstrating how to use ONNX in practice for varied scenarios across frameworks, platforms, and device types
- AI-Serving
- AWS Lambda
- Cortex
- MXNet
- ONNX Runtime
- Converting SuperResolution model from PyTorch to Caffe2 with ONNX and deploying on mobile device
- Transferring SqueezeNet from PyTorch to Caffe2 with ONNX and to Android app
- Converting Style Transfer model from PyTorch to CoreML with ONNX and deploying to an iPhone
- Deploy ONNX Runtime on Mobile/Edge devices
- Netdrawer: Visualizing ONNX models
- Netron: Viewer for ONNX models
- Zetane: 3D visualizer for ONNX models and internal tensors
- Verifying correctness and comparing performance
- Example of operating on ONNX protobuf
- Float16 <-> Float32 converter
- Version conversion
We welcome improvements to the convertor tools and contributions of new ONNX bindings. Check out contributor guide to get started.
Use ONNX for something cool? Send the tutorial to this repo by submitting a PR.