为定点生成函数,定义了数据类型代码生成
生成定点C / c++代码预测
机器学习模型的函数,使用generateLearnerDataTypeFcn
,saveLearnerForCoder
,loadLearnerForCoder
,codegen
(MATLAB编码器)。
机器学习模型,训练后保存模型saveLearnerForCoder
。
创建一个结构,定义了定点使用函数生成的数据类型generateLearnerDataTypeFcn
。
定义一个入口点函数,通过使用两个加载模型loadLearnerForCoder
和结构,然后调用预测
函数。
使用生成代码codegen
,然后验证生成的代码。
的generateLearnerDataTypeFcn
函数需要定点设计师™和生成定点C / c++代码的需要MATLAB®编码器™和定点设计师。
这个流程图显示了定点代码生成的工作流预测
机器学习模型的函数。使用generateLearnerDataTypeFcn
突出显示的步骤。
提高精度的定点生成的代码,您可以调整定点数据类型。通过更新修改定点数据类型数据类型的函数(myMdl_datatype
)和创建一个新的结构,然后重新生成代码使用新的结构。你可以更新myMdl_datatype
函数两种方式中的一种:
重新生成myMdl_datatype
通过使用函数generateLearnerDataTypeFcn
和它的名称-值对参数。
增加使用的单词长度“字”
名称-值对的论点。
减少使用的安全裕度“PercentSafetyMargin”
名称-值对的论点。
如果你增加这个词长度或减少安全裕度,该软件可以提出一个分数长度更长,因此,提高精度的基于给定数据集生成的代码。
手动修改定点数据类型在函数文件(myMdl_datatype.m
)。为每一个变量,您可以调整长度和长度和指定定点数学设置使用fimath
(定点设计师)对象。
定点代码生成,大量的操作或一个大变量范围可能导致丧失精度,而相应的精度浮点代码。当训练支持向量机模型,牢记下面的建议来避免损失精度的定点生成代码:
数据标准化(“标准化”
)- - -为了避免溢出模型中属性值的支持向量的SVM模型,可以预测数据标准化。金宝app而不是使用“标准化”
名称-值对参数当训练模型,规范之前预测数据通过数据拟合函数和预测
函数,以便定点代码不包括标准化的操作。
内核函数(“KernelFunction”
)- - -使用高斯内核或线性内核比使用一个多项式内核。一个多项式比其他内核,内核需要较高的计算复杂度和多项式核函数的输出是无界的。
内核规模(“KernelScale”
)- - -使用一个内核规模如果需要额外的操作“KernelScale”
不是1。
看到下面成了一个分类问题的预测可能会丧失精度,如果预测类分数值有很大的范围。
loadLearnerForCoder
|saveLearnerForCoder
|buildInstrumentedMex
(定点设计师)|fi
(定点设计师)|showInstrumentationResults
(定点设计师)|codegen
(MATLAB编码器)