Export network to ONNX model format
exportONNXNetwork(
exports the deep learning network net
,filename
)net
with weights to the ONNX™ format file 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(
exports a network using additional options specified by one or more name-value pair
arguments.net
,filename
,Name,Value
)
Because of architectural differences between MATLAB® and ONNX, an exported network can have a different structure compared to the original network.
Note
If you import an exported network, layers of the reimported network might differ from the original network and might not be supported.
You can export a trained MATLAB deep learning network that includes multiple inputs and multiple outputs to the ONNX model format. To learn about a multiple-input and multiple-output deep learning network, see Multiple-Input and Multiple-Output Networks.
exportONNXNetwork
does not export settings or properties related to
network training such as training options, learning rate factors, or regularization
factors.
If you export a network that 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. You cannot import an ONNX network with a placeholder operator into other deep learning
frameworks.
exportONNXNetwork
can export the following:
Networks that have both convolutional and LSTM layers, for example, for video classification applications.
All custom layers (except nnet.onnx.layer.Flatten3dLayer
)
that are 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 as in the below table.
The following layers:
ONNX Exporter Supported Layers |
---|
Deep Learning Toolbox Layers |
additionLayer |
averagePooling2dLayer |
averagePooling3dLayer |
batchNormalizationLayer |
bilstmLayer |
ClassificationOutputLayer |
clippedReluLayer |
concatenationLayer |
convolution2dLayer |
convolution3dLayer |
crop2dLayer |
CrossChannelNormalizationLayer |
depthConcatenationLayer |
dropoutLayer |
eluLayer |
fullyConnectedLayer
|
flattenLayer |
globalAveragePooling2dLayer |
globalMaxPooling2dLayer |
groupedConvolution2dLayer |
groupNormalizationLayer |
gruLayer |
imageInputLayer
|
image3dInputLayer |
leakyReluLayer |
lstmLayer |
maxPooling2dLayer |
maxPooling3dLayer |
maxUnpooling2dLayer |
multiplicationLayer |
RegressionOutputLayer |
reluLayer |
sequenceInputLayer |
sigmoidLayer |
softmaxLayer |
tanhLayer |
transposedConv2dLayer |
transposedConv3dLayer |
ONNX Importer Custom Layers |
nnet.onnx.layer.ClipLayer |
nnet.onnx.layer.ElementwiseAffineLayer |
nnet.onnx.layer.FlattenLayer |
nnet.onnx.layer.GlobalAveragePooling2dLayer |
nnet.onnx.layer.IdentityLayer |
nnet.onnx.layer.PReluLayer |
nnet.onnx.layer.TanhLayer |
Keras Importer Custom Layers |
nnet.keras.layer.FlattenCStyleLayer |
nnet.keras.layer.GlobalAveragePooling2dLayer |
nnet.keras.layer.TanhLayer |
nnet.keras.layer.ZeroPadding2dLayer |
Caffe Importer Custom Layers |
nnet.caffe.layer.TanhLayer |
Computer Vision Toolbox™ Layers |
pixelClassificationLayer (Computer Vision Toolbox) |
rcnnBoxRegressionLayer (Computer Vision Toolbox) |
roiInputLayer (Computer Vision Toolbox) |
roiMaxPooling2dLayer (Computer Vision Toolbox) |
spaceToDepthLayer (Computer Vision Toolbox) |
Image Processing Toolbox™ Layers |
resize2dLayer (Image Processing Toolbox) |
resize3dLayer (Image Processing Toolbox) |
Text Analytics Toolbox™ Layers |
wordEmbeddingLayer (Text Analytics Toolbox)
|
For the groupNormalizationLayer
, specify numGroups
as
"channel-wise"
to map the exported layer to the ONNX
InstanceNormalization
operator.
GroupNormalization
is not a standard ONNX operator [3].
[1] Open Neural Network Exchange. https://github.com/onnx/.
[2] ONNX. https://onnx.ai/.
[3] ONNX Operators. https://github.com/onnx/onnx/blob/master/docs/Operators.md.
importCaffeLayers
| importCaffeNetwork
| importKerasLayers
| importKerasNetwork
| importONNXLayers
| importONNXNetwork