主要内容

代码生成简介

马铃薯草®编码器™从统计和机器学习工具箱™功能生成可读和便携式的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 ++代码金宝appCodegen.(MATLAB编码器),然后验证生成的代码。入学点函数,也称为顶层要么基本的函数,是您为代码生成定义的函数。因为您无法在顶级使用函数Codegen.,您必须定义一个入口点函数。入口点函数中的所有功能必须支持代码生成。金宝app

    有关详细信息,请参阅一般代码生成工作流程

  • 代码生成工作流程,用于机器学习模型的对象功能(包括预测随机的knnsearch.rangesearch.,和增量学习对象功能)

    使用培训模型Savelarnerforcoder.,并通过使用定义加载已保存的模型的入口点函数loadlearnerforcoder.并调用对象函数。然后通过使用生成输入点功能的代码Codegen.(MATLAB编码器),并验证生成的代码。入口点函数的输入参数不能是分类或回归模型对象。因此,您需要通过使用此限制来解决这些限制Savelarnerforcoder.loadlearnerforcoder.

    您还可以生成单精度C / C ++代码,以预测用于分类和回归的机器学习模型。对于单精度代码生成,请指定名称值对参数'dataType','single'作为额外的输入loadlearnerforcoder.功能。

    有关详细信息,请参阅以下示例

    您还可以生成用于预测支持向量机(SVM)模型,决策树模型和决策树的集成树的集合的固定点C / C ++代码。金宝app这种类型的代码生成需要固定点设计器™。

    固定点代码生成需要一个附加步骤,该步骤定义预测所需的变量的定点数据类型。通过使用由生成的数据类型函数创建固定点数据类型结构generatelearnerdatatypefcn.,并使用该结构作为输入参数loadlearnerforcoder.在一个入口点函数中。您还可以在生成代码之前优化固定点数据类型。

    有关详细信息,请参阅用于预测SVM的定点代码生成

  • 代码生成工作流程预测更新使用SVM或线性二进制学习者,树模型,SVM模型,线性模型或多款误差型输出代码(ECOC)分类模型的功能

    使用使用创建编码器配置程序LearnerCoderConfigurer,通过使用生成代码generatecode.,然后验证生成的代码。您可以使用对象属性配置代码生成选项并指定模型参数的编码器属性。用新数据或设置重新培制模型后,您可以在生成的C / C ++代码中更新模型参数,而无需重新生成代码。此功能可减少重新生成,重新部署和求解C / C ++代码所需的努力。

    有关详细信息,请参阅使用编码器配置程序的预测和更新的代码生成

代码生成应用程序

将计算机学习模型的预测集成到Simulink中金宝app®,使用MATLAB功能块或统计信息和机器学习工具箱库中的Simulink块金宝app。有关详细信息,请参阅以下示例:

统计和机器学习工具箱功能的代码也适用于其他工具箱,例如System Object™和StateFlow®,如以下示例中所述:

有关代码生成的更多应用,请参阅以下示例:

也可以看看

||||(MATLAB编码器)

相关话题