Select Function to Import ONNX Pretrained Network
Deep Learning Toolbox™ Converter for ONNX™ Model Format provides three functions to import a pretrained ONNX (Open Neural Network Exchange) network:
This flow chart illustrates which import function best suits different scenarios.
importONNXLayers try to generate a custom layer when the
software cannot convert an ONNX operator into an equivalent built-in MATLAB® layer. For a list of operators for which the software supports
conversion, see ONNX Operators Supported for Conversion into Built-In MATLAB Layers.
save the generated custom layers in the package
+ in the current folder.
do not automatically generate a custom layer for each ONNX operator that is not supported for conversion into a built-in
This table describes each decision in the workflow for selecting an ONNX import function.
|Are all the ONNX operators supported for conversion into equivalent built-in MATLAB layers or can the software automatically generate custom layers?
|Will you deploy the imported network?
|If you use
importONNXLayers, you can generate code for the
imported network. To create a
DAGNetwork object for
code generation, see Load Pretrained Networks for Code Generation (MATLAB Coder).
|Will you load the imported network with Deep Network Designer?
|If you use
importONNXLayers, you can load the imported
network with the Deep
Network Designer app.
|If you retrain the imported network, will you use a custom training loop?
This table describes each action in the workflow for selecting an ONNX import function.
importONNXNetwork returns a
that is ready to use for prediction (for more information, see the
TargetNetwork name-value argument). Predict class labels
by using the
classify function on the
object or the
function on the
importONNXLayers returns a
LayerGraph object compatible with a
(for more information, see the
TargetNetwork name-value argument).
importONNXLayers inserts placeholder layers in
the place of unsupported layers. Find and replace the placeholder
layers. Then, you can assemble the layer graph by using
assembleNetwork, which returns a
DAGNetwork object, or convert the layer graph to a
dlnetwork object by using
importONNXFunction returns an
ONNXParameters object, which contains the network
parameters, and a model function (see Imported ONNX Model Function),
which contains the network architecture. The
ONNXParameters object and the model function are
ready to use for prediction. For an example, see Predict Using Imported ONNX Function.
|Find and replace the placeholder layers
|To find the names and indices of the placeholder layers in the
imported network, use the
findPlaceholderLayers function. You then can replace a
placeholder layer with a new layer that you define. To replace a layer,