MATLAB Answers

0

Impossible to import .onnx with importONNXLayers

Asked by tesarj13 on 21 Oct 2018
Latest activity Commented on by Kevin Chng on 27 Jan 2019

I am trying to import different onnx models from official repo. importONNXLayers always ends with error:

  • ArcFace throws: Error using importONNXLayers (line 39) Size vector must have at least two elements.
  • SqueezeNet throws: Error using importONNXLayers (line 39) Node 'squeezenet0_flatten0_reshape0': The Reshape operator is supported only when it performs a flattening operation.
  • Emotion FerPlus throws: Error using importONNXLayers (line 39) Node 'Times622_reshape1': The Reshape operator is supported only when it performs a flattening operation.

I followed official documentation for using importONNXLayers function:

 layers = importONNXLayers('squeezenet1.1.onnx','OutputLayerType','classification');

What is wrong here?

  2 Comments

Hi, I have encountered this problem with different error after downloading the support package.
modelfile = 'cifarResNet.onnx';
classes = ["airplane" "automobile" "bird" "cat" "dee" "dog" "frog" "horse" "ship" "truck"];
net = importONNXNetwork(modelfile,'OutputLayerType','classification','Classes',classes)
Error using onnxmex
Opening file 'cifarResNet.onnx' failed.
Error in nnet.internal.cnn.onnx.ModelProto (line 31)
ModelPtr = onnxmex(int32(FuncName.EdeserializeFromFile), filename);
Error in nnet.internal.cnn.onnx.importONNXNetwork (line 8)
m = nnet.internal.cnn.onnx.ModelProto(Filename);
Error in importONNXNetwork (line 53)
Network = nnet.internal.cnn.onnx.importONNXNetwork(ModelFile, varargin{:});
I don't understand as well. Are you able to run the code above?
I downloaded resnet50v2.onnx from repo ( where am I supposed to get the 'cifarResNet.onnx' file anyway?) and error on line 39 is: Node 'resnetv24_flatten0_reshape0': The Reshape operator is supported only when it performs a flattening operation.
Also there are two almost same functions: importONNXNetwork and importONNXLayers. Both throw same errors..

Sign in to comment.

Products


Release

R2018a

2 Answers

Answer by Don Mathis
on 26 Oct 2018

Those ONNX models are somewhat unusual in their use of the Reshape operator. We are actively working on supporting more ONNX operators, and we specifically aim to be able to import models in the ONNX model zoo.

  1 Comment

Glad to hear that ! Thanks !

Sign in to comment.


Answer by cui
on 24 Jan 2019

I also encountered the misplacement of the imported onnx model. I exported the pre-trained alexnet in pytorch, but the following error occurred when importing onnx in matlab. How can I solve this problem? Thank you
360截图20190124154320093.jpg

  3 Comments

In matlab, you can load the pre-trained alexnet directly.
Unless you have done transfer lerning with the pre-trained network in pytorch, then it is only worth to get them into MATLAB through ONNX.
How about directly to run the line 5?
net = importONNXNetwork('alexnet.onnx','OutputLayerType','classification');
It' same error, thank your advice! but i want to use other model networks in pytorch,then import to matlab to use.
importONNXNetwork/importONNXLayers does not seem to be perfect, there are many operations that are not supported, and it is hoped that the 2019a version will provide its robustness.
Ya, i guess not all the layers of deep learning are supported by MATLAB currently.

Sign in to comment.