C++ language conversion of the captured neural network

6 views (last 30 days)
After importing the trained model created by keras into MATLAB, I am trying to convert it to C++ and use it in Simulink.
I created the code to convert the keras model in .mat file into C++, but I get the following error.
Error: The library method'dltargets.mkldnn.mkldnnApi.updateBuildInfo' does not work. Cause: The number of outputs from the right-hand side of the equal sign is not enough to satisfy the substitution.
function out = myNet_predict(in) %#codegen
inputnet = 'netTransfer.mat';
persistent mynet;
if isempty(mynet)
mynet = coder.loadDeepLearningNetwork(inputnet);
end
out = predict(mynet,in);
end
in = imread('two.png');
in = imresize(in,[1,784]);
cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
codegen -args {ones(1,784,1,'uint8')} -config cfg myNet_predict -report;
Can this be dealt with by rewriting the program? Or is it better to try another method?
  3 Comments

Sign in to comment.

Answers (1)

Sayan Saha
Sayan Saha on 8 Jun 2022
This issue is likely because a supported C++ compiler is not set in MATLAB. You can invoke "mex -setup C++" to set the compiler from the list of supported ones as mentioned in https://www.mathworks.com/support/requirements/supported-compilers.html

Community Treasure Hunt

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

Start Hunting!

Translated by