Application Compiler, error with an executable : importONNXNetwork requires the Deep Learning Toolbox Converter for ONNX Model

I am trying to make an executable of a Matlab code using the Deep Learning Toolbox with Application Compiler.
The created executable make an error and display the following message:
matlab error.png
I have checked on the Add-On Explorer, the "Deep Learning Toolbox Converter for ONNX Model Format " is installed on my Matlab and the importONNXNetwork.m is automatically added to the list of "Files required for your application to run" in the Application Compiler.
The line 5 of test.m is the only use of the importONNXNetwork function:
modelfile = "AlexNet_pretrain_and_fit.onnx";
%testvie = uigetfile(pwd, "Neural network file");
classes = {'-1' '0' '1'};
outputtype = 'classification';
net = importONNXNetwork(modelfile,'OutputLayerType','classification',"Classes", classes) %line 5
To solve my problem I tried to:
  • Put the toolxbox folder in the same directory than test.m and compile.
  • Put the importONNXNetwork.m file in the same folder and add it to the list of files required for my application to run in the Application Compiler.
  • I check that Deep Learning Toolbox is supported by Application compiler, not all command are supported but I seem ok for importONNXNetwork.

2 Comments

I'm unable to reproduce this behaviour on my side.Please provide reproductoin steps.
Hi,
I try again my code and I still have this problem. So I write this code;
modelfile = "AlexNet_pretrain_and_fit.onnx";
%testvie = uigetfile(pwd, "Neural network file");
classes = {'-1' '0' '1'};
outputtype = 'classification';
net = importONNXNetwork(modelfile,'OutputLayerType','classification',"Classes", classes)
%image_path = uigetdir(pwd, "Images folder"); %open local folder
image_path = "raw_images"
images_to_classify = imageDatastore(image_path);
images_to_classify.ReadFcn = @readFunctionTrain;
predictedLabels = [images_to_classify.Files , classify(net, images_to_classify)];
writematrix( predictedLabels , "results.csv")
Then I transform it in executable with "Application Compiler" (I use the defaults parameters).
Then I install the app and run it. Then it trow the importONNXNetwork error.
Personaly,since July I jump to Python to solve this problem, but it can help other people to solve it.

Sign in to comment.

Answers (5)

I have heard that this issue is known and the concerned parties may be investigating further.
I just ran into the same issue when trying to deploy a Matlab executable for DeepLearning.
HR, since this appears to be a known problem, could you give us an estimate on a fix?
Thanks!
The Deploy Imported Network with MATLAB Compiler example can help you with your workflow. If you are using a MATLAB version older than R2021b, you must manually specify the path to the ONNX layers folder. Note that you can deploy only the imported network using MATLAB Compiler. You cannot deploy import functions, such as importTensorFlowNetwork and importONNXNetwork.

6 Comments

Sorry, you say thats impossibile use the application compiler with code that have inside importONNXNetwork?
R2022b Bye
You cannot deploy the importONNXNetwork function. You can only deploy the network that the function imports.
Thanks Sivylla, it's so simple, i'm lost in a glass of water.
Bye

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products

Release

R2019a

Asked:

on 23 Jul 2019

Commented:

on 27 Sep 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!