Converting an ONNX Model

Introduction to ONNX

ONNX is a representation format for deep learning models that enables AI developers to easily transfer models between different frameworks.

Note

An ONNX model file can be loaded by openvino.Core.read_model or openvino.Core.compile_model methods by OpenVINO runtime API without the need to prepare an OpenVINO IR first. Refer to the inference example for more details. Using openvino.convert_model is still recommended if the model load latency is important for the inference application.

Converting an ONNX Model

This page provides instructions on model conversion from the ONNX format to the OpenVINO IR format.

For model conversion, you need an ONNX model either directly downloaded from a public repository or converted from any framework that supports exporting to the ONNX format.

To convert an ONNX model, run model conversion with the path to the input model .onnx file:

import openvino as ov
ov.convert_model('your_model_file.onnx')
ovc your_model_file.onnx

External Data Files

ONNX models may consist of multiple files when the model size exceeds 2GB allowed by Protobuf. According to this ONNX article, instead of a single file, the model is represented as one file with .onnx extension and multiple separate files with external data. These data files are located in the same directory as the main .onnx file or in another directory.

OpenVINO model conversion API supports ONNX models with external data representation. In this case, you only need to pass the main file with .onnx extension as ovc or openvino.convert_model parameter. The other files will be found and loaded automatically during the model conversion. The resulting OpenVINO model, represented as an IR in the filesystem, will have the usual structure with a single .xml file and a single .bin file, where all the original model weights are copied and packed together.

Supported ONNX Layers

For the list of supported standard layers, refer to the Supported Operations page.

Additional Resources

Check out more examples of model conversion in interactive Python tutorials.