"Constant" Error when loading in model using loadLearnerForCoder()

On a project at work, we are trying to convert a ML model to C++ using the MATLAB coder. We have done it sucessfully before but now something has gone wrong. In MATLAB Coder, when it runs the error check, it complains the function call for loadLearnerForCoder fails b/c "The Model must be a compiler-time constant". For the sake of a testing, I regenerated a smaller model (b/c our last one took a whole day to generate). When I load it in the same way, it gives no errors. When comparing the two models in MATLAB I can't really see an issue. Does anyone know how to debug this better or see what MATLAB is erroring out on? Also I cannot provide any code for this due to work. I've tried using coder.constant() and it doesn't work. I also used coder.screener() and it reported no problems.

4 Comments

Roughly speaking, that error would be generated if you had something of the form
model_name = "YourModelNameGoesHere";
do_the_compile_stuff(model_name)
when instead you need
do_the_compile_stuff("YourModelNameGoesHere")
The code is currently written roughly like this:
function [x,y] = predictFuntion(input) %#codegen
mdlPath = "path\to\model";
mdl = loadLearnerForCoder(mdlPath)
[x,y] = predict(mdl, input);
end
This works for one model but not the other. Would what you stated still be the case and I should just try it as one line instead of two?
Unfortunately that did not work.

Sign in to comment.

Answers (0)

Categories

Products

Release

R2024b

Asked:

on 28 Feb 2025

Commented:

on 3 Mar 2025

Community Treasure Hunt

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

Start Hunting!