MATLAB®编码员™从统计和机器学习工具箱生成可读和可移植的C和C++代码™ 支持代码生成的函数。您可以将生成的代码作为源代码、静态库或动态库集成到项目中。您还可以在MATLAB环境中使用生成的代码来加速MATLAB代码中计算密集的部分金宝app。
生成C/ c++代码需要MATLAB编码器具有以下局限性:
使用。生成代码时,不能在顶层调用任何函数编码基因
(MATLAB编码器).函数中调用函数入口点函数,然后从入口点函数生成代码顶级或主函数,是为代码生成定义的函数。入口点函数中的所有函数都必须支持代码生成。金宝app
这个MATLAB编码器用于代码生成的统计和机器学习工具箱也存在局限性。有关详细信息,请参阅支持C/ c++代码生成的MATLAB语言特性金宝app(MATLAB编码器).
统计和机器学习工具箱中的代码生成不支持稀疏矩阵。金宝app
有关每个函数的代码生成使用说明和限制,请参阅函数参考页面上的代码生成部分。
有关支持代码生成的统计信息和机器学习工具箱函数的列表,请参阅金宝app函数列表(C/C++代码生成).
您可以通过几种方式为Statistics和Machine Learning Toolbox函数生成C/ c++代码。
非机器学习模型目标函数的通用代码生成工作流
定义一个入口点函数调用支持代码生成的函数,使用金宝app编码基因
(MATLAB编码器),然后验证生成的代码顶级或主函数,是为生成代码而定义的函数。因为不能使用编码基因
,必须定义入口点函数。入口点函数中的所有函数都必须支持代码生成。金宝app
有关详细信息,请参阅通用代码生成工作流.
机器学习模型目标函数的代码生成工作流(包括预测
,随机的
,knnsearch
,范围搜索
,以及增量学习对象函数)
使用保存经过训练的模型saveLearnerForCoder
,并定义一个入口点函数,通过使用loadLearnerForCoder
并调用对象函数。然后使用编码基因
(MATLAB编码器),并验证生成的代码。入口点函数的输入参数不能是分类或回归模型对象。因此,您需要通过使用saveLearnerForCoder
和loadLearnerForCoder
.
您还可以为分类和回归的机器学习模型的预测生成单精度C/C++代码。对于单精度代码生成,请指定名称-值对参数“数据类型”、“单”
作为对loadLearnerForCoder
功能。
有关详细信息,请参见这些示例
您还可以生成定点C/ c++代码,用于预测支持向量机(SVM)模型、决策树模型以及用于分类和回归的决策树集成。金宝app这种类型的代码生成需要Fixed-Point Designer™。
定点代码生成需要一个额外的步骤来定义预测所需变量的定点数据类型。使用生成的数据类型函数创建定点数据类型结构generateLearnerDataTypeFcn
,并将该结构用作的输入参数loadLearnerForCoder
在入口点函数中。您还可以在生成代码之前优化定点数据类型。
有关详细信息,请参阅支持向量机预测的定点代码生成.
应用程序的代码生成工作流预测
和更新
使用SVM或线性二进制学习器的树模型、SVM模型、线性模型或多类纠错输出码(ECOC)分类模型的功能
使用。创建编码器配置器learnerCoderConfigurer
,使用生成代码generateCode
,然后验证生成的代码。您可以配置代码生成选项,并使用对象属性指定模型参数的编码器属性。在使用新数据或设置重新训练模型之后,您可以在生成的C/ c++代码中更新模型参数,而无需重新生成代码。该特性减少了重新生成、重新部署和重新验证C/ c++代码所需的工作。
有关详细信息,请参阅使用编码器配置器生成预测和更新的代码.
将机器学习模型的预测集成到Simulink中金宝app®,使用MATLAB函数块或统计和机器学习工具箱库中的Simulink块。金宝app有关详细信息,请参阅以下示例:
Statistics和Machine Learning Toolbox函数的代码生成也可以与System object™和statflow等其他工具箱一起使用®,如这些示例中所述:
有关代码生成的更多应用,请参阅以下示例:
generateLearnerDataTypeFcn
|learnerCoderConfigurer
|loadLearnerForCoder
|saveLearnerForCoder
|编码基因
(MATLAB编码器)