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.

exportONNXNetwork

Export network to ONNX model format

Export a trained Deep Learning Toolbox™ network to the ONNX™ (Open Neural Network Exchange) model format. You can then import the ONNX model to other deep learning frameworks that support ONNX model import, such as TensorFlow®, Caffe2, Microsoft® Cognitive Toolkit, Core ML, and Apache MXNet™.

Syntax

exportONNXNetwork(net,filename)
exportONNXNetwork(net,filename,'NetworkName',netName)

Description

example

exportONNXNetwork(net,filename) exports the deep learning network net with weights to the ONNX format file specified by filename. If filename exists, then exportONNXNetwork overwrites the file.

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.

exportONNXNetwork(net,filename,'NetworkName',netName) exports a network and specifies netName as the network name in the saved ONNX network.

Examples

collapse all

Load a pretrained SqueezeNet convolutional neural network. If Deep Learning Toolbox Model for SqueezeNet Network is not installed, then the squeezenet function provides a download link.

net = squeezenet
net = 
  DAGNetwork with properties:

         Layers: [68×1 nnet.cnn.layer.Layer]
    Connections: [75×2 table]

Export the network to an ONNX format file called squeezenet.onnx in the current folder. If the Deep Learning Toolbox Converter for ONNX Model Format support package 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.

filename = 'squeezenet.onnx';
exportONNXNetwork(net,filename)

You can now import the squeezenet.onnx file to another deep learning framework that supports import from ONNX.

Input Arguments

collapse all

Trained network, specified as a SeriesNetwork or a DAGNetwork object. You can get a trained network by importing a pretrained network (for example, by using the alexnet function) or by training your own network using trainNetwork.

Name of file, specified as a character vector or string.

Example: 'network.onnx'

Name of ONNX network to store in the saved file, specified as a character vector or string.

Example: 'network_name'

Tips

  • exportONNXNetwork does not export settings or properties related to network training such as training options, learning rate factors, or regularization factors.

  • If the network that you want to export contains a layer that the ONNX format does not support, then exportONNXNetwork saves a placeholder ONNX operator in place of the unsupported layer and returns a warning. It is not possible to import the exported ONNX model to other deep learning frameworks.

    exportONNXNetwork can export the following layers:

    • All layers in Deep Learning Toolbox except maxUnpooling2dLayer.

    • All custom layers created when importing networks from ONNX or TensorFlow-Keras using Deep Learning Toolbox Converter for ONNX Model Format or Deep Learning Toolbox Importer for TensorFlow-Keras Models.

    • crop2dLayer and pixelClassificationLayer (Computer Vision System Toolbox™).

References

[1] Open Neural Network Exchange. https://github.com/onnx/.

[2] ONNX. https://onnx.ai/.

Introduced in R2018a