This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Import pretrained ONNX network


net = importONNXNetwork(modelfile)
net = importONNXNetwork(modelfile,Name,Value)



net = importONNXNetwork(modelfile) imports a pretrained network from the ONNX™ (Open Neural Network Exchange) file modelfile.

This function requires the Deep Learning Toolbox™ Converter for ONNX Model Format support package. If this support package is not installed, then the function provides a download link.


net = importONNXNetwork(modelfile,Name,Value) imports a pretrained ONNX network with additional options specified by one or more name-value pair arguments.

For example, importONNXNetwork(modelfile,'OutputLayerType','classification') imports the network from the file modelfile and specifies the output layer type.


collapse all

Download and install the Deep Learning Toolbox Converter for ONNX Model Format support package.

Type importONNXNetwork at the command line.


If Deep Learning Toolbox Converter for ONNX Model Format is not installed, then the function provides a link to the required support package in the Add-On Explorer. To install the support package, click the link, and then click Install. Check that the installation is successful by importing the network from the model file 'cifarResNet.onnx' at the command line. If the support package is installed, then the function returns a DAGNetwork object.

modelfile = 'cifarResNet.onnx';
classes = ["airplane" "automobile" "bird" "cat" "dee" "dog" "frog" "horse" "ship" "truck"];
net = importONNXNetwork(modelfile,'OutputLayerType','classification','Classes',classes)
net = 

  DAGNetwork with properties:

         Layers: [77×1 nnet.cnn.layer.Layer]
    Connections: [85×2 table]

Import a residual neural network trained on the CIFAR-10 data set. Specify the file containing the ONNX network, its output type, and its output classes.

modelfile = 'cifarResNet.onnx';
classes = ["airplane" "automobile" "bird" "cat" "dee" "dog" "frog" "horse" "ship" "truck"];
net = importONNXNetwork(modelfile, ...
    'OutputLayerType','classification', ...
net = 
  DAGNetwork with properties:

         Layers: [77×1 nnet.cnn.layer.Layer]
    Connections: [85×2 table]

Analyze the imported network.


Input Arguments

collapse all

Name of ONNX model file containing the network, specified as a character vector or a string scalar. The file must be in the current folder, in a folder on the MATLAB® path, or you must include a full or relative path to the file.

Example: 'cifarResNet.onnx'

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: importONNXNetwork(modelfile,'OutputLayerType','classification','Classes',classes) imports a network from the model file modelfile, adds an output layer for a classification problem at the end of the network, and specifies classes as the classes of the output layer.

Type of the output layer that the function appends to the end of the imported network architecture, specified as 'classification' or 'regression'. This is a required argument.

Example: 'OutputLayerType','regression'

Classes of the output layer, specified as a categorical vector, string array, cell array of character vectors, or 'auto'. If Classes is 'auto', then the software sets the classes to categorical(1:N), where N is the number of classes. If you specify a string array or cell array of character vectors str, then the software sets the classes of the output layer to categorical(str,str).

Data Types: char | categorical | string | cell

Output Arguments

collapse all

Pretrained network, returned as DAGNetwork object.


  • If the ONNX network contains a layer that Deep Learning Toolbox Converter for ONNX Model Format does not support, then the function returns an error message. In this case, you can still use importONNXLayers to import the network architecture and weights.

  • To use a pretrained network for prediction or transfer learning on new images, you must preprocess your images in the same way the images that were used to train the imported model were preprocessed. Most common preprocessing steps are resizing images, subtracting image average values, and converting the images from BGR images to RGB.

    • To resize images, use imresize. For example, imresize(image,[227,227,3]).

    • To convert images from BGR to RGB format, use flip. For example, flip(image,3).

    For more information on preprocessing images for training and prediction, see Preprocess Images for Deep Learning.

Compatibility Considerations

expand all

Not recommended starting in R2018b


[1] Open Neural Network Exchange.

[2] ONNX.

Introduced in R2018a