IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用matlab分类学习器生成装袋树模型并导出模型为C++代码到CLION中运行 -> 正文阅读

[人工智能]使用matlab分类学习器生成装袋树模型并导出模型为C++代码到CLION中运行

使用matlab分类学习器生成装袋树模型并导出模型为C++代码到CLION中运行

由于毕设需要使用机器学习方法,数据是使用matlab处理的接收机后处理组合导航数据,正好可以使用matlab自带的机器学习工具箱进行训练和测试,生成初步的机器学习模型,可以到出到matlab中使用,也可以配合coder工具箱生产C++代码在Clion中运行。

在matlab中进行训练和测试

我的数据类型为一个标签四个特征组成的数据集,结构如下:

在整理好了数据集和训练集(格式要对应)训练过程如下:
1.打开分类学习器工具箱:
在这里插入图片描述
2.新建会话,这里我数据保存为文件形式所以选择从文件,如果数据在工作区可以选择从工作区
在这里插入图片描述
3.从文件导入的数据可以选择导入的内容,会自动识别分割各列,我选择的标签和特征一个5列
在这里插入图片描述4.选择响应即自己的标签列后开始会话,注意这里每一列都有名称这在导出的模型中有对应的关系。
在这里插入图片描述
5.在模型类型中选择自己想要的模型,在高级中可以设置参数。如果选择的模型很多可以开启使用并行,那么在跑模型的同时可以做其他的选择(如增加模型,改变模型参数,选择特征等等),选好后点击训练。在这里我选择装袋数,在绘图栏可以查看训练的特征图,训练结果为交叉验证的结果。
在这里插入图片描述

6.导入测试数据,导入过程和训练数据一样,注意要完全对应,在这里我依旧是从文件导入(也可以从工作区),导入内容时每一列都要对应上。
7.点击测试全部可以得到测试结果,同样可以在绘图中绘制测试数据相应图
在这里插入图片描述

导出模型

1.训练好模型后就可以导出使用,我选择导出为紧凑型模型(不带训练数据)输入名称即可导出
在这里插入图片描述
2.在工作区会看到生产的一个结构体
在这里插入图片描述
3.同时系统给出了使用模型的链接,可以参考使用。
在这里插入图片描述
输入一个参数测试:

data = [2 2 2 2];
T =  array2table(data, 'VariableNames', {'VarName3','VarName4','VarName5','VarName7'})
yfit = trainedModelshanghia.predictFcn(T);

在这里插入图片描述
可以看到能正常使用,这里要特别注意输入参数应该是列表类型,同时要和之前训练选择的列名称对应上才行这里我之前不知道哪数组试怎么都不行。
4.加载模型,编写调用的函数。为了更好的使用模型以及生成C/C++代码需要新建一个调用模型的函数

saveLearnerForCoder(trainedModepre.ClassificationEnsemble,'mytree')

这个代码将模型保存到工作目录下其中trainedModepre为生成的,模型名称,,'mytree’为自己定义的名字,本地的模型名称就是mytree。
在这里插入图片描述

新建调用函数如上。至此模型已经导出到matlab可以使用。

生成C/C++代码

有了调用函数以后我们就可以生成C++代码。
1.在命令行输入coder,调用工具箱,选择我们新建的函数
在这里插入图片描述
2.点击NEXT,在输入框中输入一个调用函数的代码或者选择一个调用了函数的文件,这里我输入测试用的代码语句,点击Autodefine Input Types自动识别然后点击Next

3.点击Check for Issues等待运行。成功后点击Next
在这里插入图片描述4.选择语言然后点击Generate.生成对应代码,最后又代码的简单介绍,C代码在treeclassfyX中,examples中有实例代码。最终代码在工作目录下是codegen文件夹
在这里插入图片描述
在这里插入图片描述

导入Clion

1.将生成的代码文件codegen-lib中的文件夹在clion中打开,把.cpp .h以外的文件删掉,把eaamples中的文件复制出来后把所有其他文件夹删除。
在这里插入图片描述
在main.cpp中展示了如何使用函数
在这里插入图片描述
所以可以编写自己的测试函数
在这里插入图片描述
==在运行的时候会报错缺文件"tmwtypes.h"==它在我们matlab安装路径下有,

在这里插入图片描述
window可以使用everything搜索这个头文件的位置在Polyspace\R2021a\extern\include中复制过来即可
Linux可以使用locate matlab找到MATLAB/R2021a/…即matlab的位置同样在extern/include中复制过来即可
再次运行即可成功
在这里插入图片描述
自此,所有工作都完成了,可以进一步的在matlab和C编译器中使用这些函数和文件。

总结

在生成模型和C++代码过程中经历了很多坑,所以记录下来共分享。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:17:41  更:2022-04-06 16:18:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:45:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码