介绍代码生成
MATLAB®编码器™生成可读和可移植的C和c++代码从统计和机器学习工具箱™函数支持代码生成。金宝app你可以将生成的代码集成到项目源代码,静态库,或动态库。您还可以使用生成的代码在MATLAB环境中加速计算密集型部分MATLAB代码。
需要生成C / c++代码MATLAB编码器和有以下限制:
你不能调用任何函数在顶层时,通过使用生成代码
codegen
(MATLAB编码器)。相反,在一个调用的函数入口点函数,然后从入口点函数生成代码。的入口点函数,也称为顶级或主函数是一个函数定义为代码生成。内的所有函数的入口点函数必须支持代码生成。金宝app的MATLAB编码器限制也适用于统计和机器学习为代码生成工具箱。有关详细信息,请参见MATLAB语言特性支持C / c++代码生成金宝app(MATLAB编码器)。
代码生成的统计和机器学习工具不支持稀疏矩阵。金宝app
代码生成使用笔记和限制为每个函数,参见代码生成部分在功能上引用页面。
列表统计和机器学习的工具箱函数支持代码生成,明白了金宝app功能列表(C / c++代码生成)。
代码生成工作流
您可以生成C / c++代码统计和机器学习的工具箱函数在几个方面。
通用工作流代码生成功能,并不是对象功能的机器学习模型
定义一个入口点函数调用的函数支持代码生成,生成C / c++代码的入口点函数的使用金宝app
codegen
(MATLAB编码器),然后验证生成的代码。的入口点函数,也称为顶级或主函数是一个函数定义为代码生成。因为你不能调用任何函数在顶层codegen
,您必须定义一个入口点函数。内的所有函数的入口点函数必须支持代码生成。金宝app有关详细信息,请参见通用代码生成工作流。
代码生成工作流的目标函数(包括机器学习模型
预测
,随机
,knnsearch
,rangesearch
,isanomaly
和增量学习对象函数)通过使用保存训练模型
saveLearnerForCoder
定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder
并调用对象的函数。然后生成代码的入口点函数的使用codegen
(MATLAB编码器),并验证所生成的代码。入口点函数的输入参数不能分类或回归模型对象。因此,您需要解决这个限制使用saveLearnerForCoder
和loadLearnerForCoder
。你也可以生成单精度C / c++代码的机器学习模型的预测分类和回归。对于单精度代码生成、指定名称-值对的论点
“数据类型”、“单”
作为一个额外的输入loadLearnerForCoder
函数。,这些例子
你也可以生成定点C / c++代码的支持向量机(SVM)模型的预测,决策树模型,一个决策树的分类和回归。金宝app这种类型的代码生成需要定点设计师™。
定点代码生成需要一个额外的步骤,定义了定点预测所需的变量的数据类型。创建一个定点数据类型结构通过使用生成的数据类型的功能
generateLearnerDataTypeFcn
,使用的结构作为输入参数loadLearnerForCoder
在一个入口点函数。您还可以优化定点数据类型生成代码。有关详细信息,请参见定点代码生成SVM的预测。
代码生成的工作流
预测
和更新
树的函数模型,一个支持向量机模型,线性模型或多级纠错输出编码(ECOC)使用支持向量机分类模型或线性二进制学习者在训练模型,创建一个编码器配置使用
learnerCoderConfigurer
通过使用生成代码generateCode
,然后验证生成的代码。您可以配置代码生成选项和指定的编码属性使用对象属性模型参数。之后再培训模型与新数据或设置,您可以更新模型参数生成的C / c++代码,而不必重新生成代码。这个特性可以减少所需的努力再生,重新部署,reverify C / c++代码。有关详细信息,请参见代码生成的预测和更新使用编码器配置。
代码生成的应用程序
机器学习模型的集成预测模型金宝app®,使用MATLAB的仿真软件模块功能块或统计和机器学习工具库。金宝app,这些例子:
代码生成的统计和机器学习的工具箱函数也适用于其他系统对象™和Stateflow等工具箱®在这些例子中所描述的:
更多的应用程序代码生成,看到这些例子:
另请参阅
codegen
(MATLAB编码器)|saveLearnerForCoder
|loadLearnerForCoder
|learnerCoderConfigurer
|generateLearnerDataTypeFcn
相关的话题
- 开始使用MATLAB编码器(MATLAB编码器)