许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Matlab训练模型、导出模型及VC调用全过程详解

Matlab训练模型、导出模型及VC调用全过程详解

阅读数 26
点赞 0
article_banner

MATLAB是美国MathWorks公司出品的商业数学软件,为算法开发、数据可视化、数据分析以及数值计算等提供了高级计算语言和交互式环境。随着人工智能的崛起,MATLAB也添加了自己的机器学习工具包,只需要很少的代码或命令就能完成 模型 训练和测试的过程,训练好的模型也能方便的导出,供VC等调用。本文主要介绍模型训练、导出和调用的整个过程。

软件版本:

VC2015,matlab2018a

1,数据准备。

随机生成一组训练数据,格式如下:

x,y,label

x,y为坐标,label为标签

我生成的数据总量为3000,格式如下:

前1500:x>0, y>0,   label=1      x,y落在坐标系的第一象限

后500  :x<0, y>0,   label=0      x,y落在坐标系的第二象限

后500  :x<0, y<0,   label=0      x,y落在坐标系的第三象限

后500  :x>0, y<0,   label=0      x,y落在坐标系的第四象限

数据存为csv格式,如下图所示:

2,模型训练

(1)打开matlab,将工作目录设置在cvs文件所在目录,点开APPS选项卡,点击Classification Learner

(2)点击菜单:New Session  ,选择From File

(3)选择我们生成的训练数据文件后,matlab显示出了文件内容,点击Insert Selection导入文件

(4)数据设置,前两列为训练数据,第三列为标签,点击Start Session

数据导入后,分类器显示数据点的分布情况,可以看到:标签为1的样本显示为红色,分布在第一象限;标签为0的样本显示为蓝色,分布在二三四象限。

(5)开始训练,此时分类器默认选择的模型为Fine Tree,我们可以直接使用这个模型进行训练,也可以选择ALL,让所有的模型都进行训练,从而根据训练结果选择最好的模型,这里我们直接点击Train进行训练。训练完成后显示Fine Tree模型对于当前样本的识别率为100%(matlab将导入的样本分为两份,一份训练,一份测试,100%是对测试样本集测试后得出的结果)。

3,模型导出及使用

选择训练好的Fine Tree模型,点击Export Model,选择Export compact model,导出训练好的模型

模型导出后,在matlab的变量列表里,出现了导出的模型:Trained model

双击Trained model,可以看到模型的内部结构

使用命令,将模型里的分类器导出为mat文件:

saveCompactModel(trainedModel.ClassificationTree, 'ClassificationTree')

命令执行成功后,工作目录出现ClassificationTree.mat文件

此mat文件无法被VC直接使用,可以在matlab里封装一个函数,函数里使用此分类器进行分类,然后将此函数导出C/C++代码或dll供VC使用。

function label = treemodel(input)    	model = loadCompactModel('ClassificationTree.mat');    	label = predict(model,input);end

在matlab命令行里输入coder,打开代码转换工具,将封装的matlab函数导出为C/C++代码

点击...选择刚才封装好的.m文件, 点击下一步,进入输入参数定义界面

点击let me enter input or global types directly,定义输入参数:

输入类型为 double  类型的x,y坐标,所以选择double,类型为1*2(选择1xn,n的位置输入2)

选择下一步,点击Generate生成代码

生成成功后,matlab工作目录出现codegen文件夹,里边是生成的文件

将图中所有的.c和.h文件导入VC工程(.c文件去掉预编译头选项),然后打开examples文件夹,查看示例文件 main  .h和main.c,仿照其示例调用分类函数进行分类测试(注意:头文件包含使用extern "C"方式)

最后一步,输入任意数据进行测试

至此,所有流程全部完成。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空