为什么我不能加载一个类的对象compactclassificationECOC”后编译一个独立的应用程序的机器学习模型?

41视图(30天)
我有一个训练有素的机器学习模型保存为垫加载文件,在我的应用程序设计的应用程序。
当我与MATLAB编译器编译应用程序到一个独立的应用程序,运行时我得到以下错误:
错误:无法加载一个类的对象“compactclassificationECOC”

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2022年8月25日
在编译过程中,依赖分析运行代码依赖于接文件。在这种情况下,依赖函数指定为一个值在训练模型结构通过一个垫子文件加载。这导致分析失去必要的文件。
为了解决这一问题,我们可以添加一个“函数编译指示”功能使依赖明确的:
%的应用设计方法
函数myAppCallback(应用程序、事件)
% #函数classreg.learning.classif.CompactClassificationECOC
(额外的代码)
添加“函数编译指示”是基于“ClassificationSVM”值的训练模型结构:
trainedModel =
结构体字段:
predictFcn: @ (x) exportableModel.predictFcn (predictorExtractionFcn (x))
ClassificationSVM:(1×1 classreg.learning.classif.CompactClassificationECOC]
内容:这个结构是一个训练有素的模型从分类学习者R2017b出口。”
HowToPredict:进行预测的一种新的预测列矩阵,X,用途:……
多种功能可以添加到编译指示空间:
% #函数classreg.learning.classif.CompactClassificationECOCclassreg。学习。regr.RegressionModel
关于“函数编译指示”的附加信息可以在以下链接中找到(参见示例3特别是):
一些警告将依然存在,但这些都是已知的和预期,不会影响应用程序的功能。

答案(1)

香港haohao
香港haohao 2019年10月20日
你解决了你的问题吗?如何去做?
1评论
山姆库克
山姆库克 2020年2月25日
根据类丢失,你可以简单的添加功能编译指示编译后的代码。从这个例子中,我们失踪CompactClassificationECOC。这是固定通过添加:
% #函数classreg.learning.classif.CompactClassificationECOC

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!