loadLearnerForCoder
Reconstruct model object from saved model for code generation
Syntax
Description
To generate C/C++ code for the object functions of machine learning models
(including predict, random,
knnsearch, rangesearch,
isanomaly, and incremental learning functions), use saveLearnerForCoder, loadLearnerForCoder, and
codegen (MATLAB Coder). After training a machine
learning model, save the model by using saveLearnerForCoder. Define
an entry-point function that loads the model by using
loadLearnerForCoder and calls an object function. Then use
codegen or the MATLAB®
Coder™ app to generate C/C++ code. Generating C/C++ code requires MATLAB
Coder.
For functions that support single-precision C/C++ code generation, use saveLearnerForCoder, loadLearnerForCoder, and
codegen (MATLAB Coder); specify the name-value argument
'DataType','single' when you call the
loadLearnerForCoder function.
This flow chart shows the code generation workflow for the object functions of machine
learning models. Use loadLearnerForCoder for the highlighted step.
![]()
Fixed-point C/C++ code generation requires an additional step that defines the
fixed-point data types of the variables required for prediction. Create a fixed-point
data type structure by using the data type function generated by generateLearnerDataTypeFcn, and use the structure as an input argument
of loadLearnerForCoder in an entry-point function. Generating
fixed-point C/C++ code requires MATLAB
Coder and Fixed-Point Designer™.
This flow chart shows the fixed-point code generation workflow for the
predict function of a machine learning model. Use
loadLearnerForCoder for the highlighted step.
![]()
reconstructs a model (Mdl = loadLearnerForCoder(filename)Mdl) from the model stored in the
MATLAB formatted binary file (MAT file) named filename.
You must create the filename file by using saveLearnerForCoder.
returns a fixed-point version of the model stored in Mdl = loadLearnerForCoder(filename,'DataType',T)filename. The structure T contains the fields that specify the fixed-point data types for the variables required to use the predict function of the model. Create T using the function generated by generateLearnerDataTypeFcn.
Use this syntax in an entry-point function, and use codegen to generate fixed-point code for the entry-point function. You can use this syntax only when generating code.
Examples
Input Arguments
Output Arguments
Limitations
When
MdlisCompactLinearModel— Suppose you train a linear model by usingfitlmand specifying'RobustOpts'as a structure with an anonymous function handle for theRobustWgtFunfield, usesaveLearnerForCoderto save the model, and then useloadLearnerForCoderto load the model. In this case,loadLearnerForCodercannot restore the Robust property into the MATLAB Workspace. However,loadLearnerForCodercan load the model at compile time within an entry-point function for code generation.When
MdlisCompactClassificationSVMorCompactClassificationECOC— If you usesaveLearnerForCoderto save a model that is equipped to predict posterior probabilities, and useloadLearnerForCoderto load the model, thenloadLearnerForCodercannot restore theScoreTransformproperty into the MATLAB Workspace. However,loadLearnerForCodercan load the model, including theScoreTransformproperty, within an entry-point function at compile time for code generation.
Tips
For single-precision code generation for a Gaussian process regression (GPR) model or a support vector machine (SVM) model, use standardized data by specifying
'Standardize',truewhen you train the model.
Algorithms
saveLearnerForCoder prepares a machine
learning model (Mdl) for code generation. The function removes some
unnecessary properties.
For a model that has a corresponding compact model, the
saveLearnerForCoderfunction applies the appropriatecompactfunction to the model before saving it.For a model that does not have a corresponding compact model, such as
ClassificationKNN,ClassificationKernel,ClassificationLinear,RegressionKernel,RegressionLinear,ExhaustiveSearcher,KDTreeSearcher,IsolationForest, andOneClassSVM, thesaveLearnerForCoderfunction removes properties such as hyperparameter optimization properties, training solver information, and others.
loadLearnerForCoder loads the model saved by
saveLearnerForCoder.
Alternative Functionality
Use a coder configurer created by
learnerCoderConfigurerfor the models listed in this table.Model Coder Configurer Object Binary decision tree for multiclass classification ClassificationTreeCoderConfigurerSVM for one-class and binary classification ClassificationSVMCoderConfigurerLinear model for binary classification ClassificationLinearCoderConfigurerMulticlass model for SVMs and linear models ClassificationECOCCoderConfigurerBinary decision tree for regression RegressionTreeCoderConfigurerSupport vector machine (SVM) regression RegressionSVMCoderConfigurerLinear regression RegressionLinearCoderConfigurerAfter training a machine learning model, create a coder configurer of the model. Use the object functions and properties of the configurer to configure code generation options and to generate code for the
predictandupdatefunctions of the model. If you generate code using a coder configurer, you can update model parameters in the generated code without having to regenerate the code. For details, see Code Generation for Prediction and Update Using Coder Configurer.
Extended Capabilities
Version History
Introduced in R2019b
See Also
saveLearnerForCoder | codegen (MATLAB Coder) | generateLearnerDataTypeFcn
Topics
- Introduction to Code Generation
- Code Generation for Prediction of Machine Learning Model at Command Line
- Code Generation for Prediction of Machine Learning Model Using MATLAB Coder App
- Code Generation for Nearest Neighbor Searcher
- Code Generation for Anomaly Detection
- Fixed-Point Code Generation for Prediction of SVM
- Specify Variable-Size Arguments for Code Generation