【opencv】示例-neural_network.cpp 使用机器学习模块创建并训练一个简单的多层感知机(神经网络)模型...

109f3a888d630bac574d9ce19101b81d.png

#include <opencv2/ml/ml.hpp> // 引入OpenCV的机器学习模块using namespace std; // 使用标准命名空间
using namespace cv; // 使用OpenCV命名空间
using namespace cv::ml; // 使用OpenCV机器学习命名空间int main()
{//创建随机训练数据Mat_<float> data(100, 100); // 申请100行100列的浮点数矩阵作为数据randn(data, Mat::zeros(1, 1, data.type()), Mat::ones(1, 1, data.type())); // 用正态分布随机填充数据,均值为0,方差为1//为每个类别创建一半的样本Mat_<float> responses(data.rows, 2); // 申请与data行数相同,2列的浮点数矩阵作为响应(输出)for (int i = 0; i<data.rows; ++i) // 遍历所有样本{if (i < data.rows/2){responses(i, 0) = 1; // 前半部分样本标记为第一类responses(i, 1) = 0;}else{responses(i, 0) = 0; // 后半部分样本标记为第二类responses(i, 1) = 1;}}/*// 如果只需要单一响应(回归分析),可以使用以下代码Mat_<float> responses(data.rows, 1); // 申请单列响应矩阵for (int i=0; i<responses.rows; ++i)responses(i, 0) = i < responses.rows / 2 ? 0 : 1; // 前半部分标记为0,后半部分标记为1*///创建神经网络Mat_<int> layerSizes(1, 3); // 定义一个1行3列的整数矩阵,用于指定网络每层的大小layerSizes(0, 0) = data.cols; // 输入层神经元数量等于数据列数layerSizes(0, 1) = 20;        // 隐藏层设为20个神经元layerSizes(0, 2) = responses.cols; // 输出层神经元数量等于响应列数Ptr<ANN_MLP> network = ANN_MLP::create(); // 创建多层感知机神经网络network->setLayerSizes(layerSizes); // 设置网络层大小network->setActivationFunction(ANN_MLP::SIGMOID_SYM, 0.1, 0.1); // 设置激活函数为对称S型函数,激活参数为0.1network->setTrainMethod(ANN_MLP::BACKPROP, 0.1, 0.1); // 设置训练方法为反向传播,学习率和动量都为0.1Ptr<TrainData> trainData = TrainData::create(data, ROW_SAMPLE, responses); // 利用数据和响应创建训练数据network->train(trainData); // 使用训练数据训练网络if (network->isTrained()) // 如果网络训练好了{printf("Predict one-vector:\n"); // 打印预测一个向量Mat result; // 用于保存预测结果的矩阵network->predict(Mat::ones(1, data.cols, data.type()), result); // 预测一个全1向量的输出cout << result << endl; // 输出预测结果printf("Predict training data:\n"); // 打印预测训练数据for (int i=0; i<data.rows; ++i) // 遍历所有训练数据{network->predict(data.row(i), result); // 对每一行数据进行预测cout << result << endl; // 输出每一行的预测结果}}return 0; // 程序结束,返回0
}

该代码的函数是使用OpenCV的机器学习模块创建并训练一个简单的多层感知机(神经网络)模型。代码生成了一些随机数据和相应的标签,然后设置了神经网络的层结构和训练参数,利用随机生成的数据训练网络,最后使用训练完成的模型来预测一些新数据的输出。

终端输出:

Predict one-vector:
[0.49815065, 0.49921253]
Predict training data:
[0.49815512, 0.4992235]
[0.49815148, 0.4992148]
[0.49816421, 0.49922886]
[0.49815488, 0.49921444]
[0.4981553, 0.49921337]
[0.49815708, 0.49922335]
[0.49815473, 0.49921861]
[0.49815747, 0.49921554]
[0.49815911, 0.49922082]
[0.4981544, 0.49921104]
[0.49815312, 0.49920845]
[0.49815834, 0.4992134]
[0.4981578, 0.499221]
[0.49815252, 0.49921796]
[0.49815798, 0.49920991]
[0.4981553, 0.49921247]
[0.49815372, 0.49922264]
[0.49815732, 0.49922493]
[0.49815607, 0.49922168]
[0.49814662, 0.49921048]
[0.49815735, 0.49921829]
[0.49815637, 0.4992227]
[0.49815381, 0.49921602]
[0.49815139, 0.49921939]
[0.49815428, 0.49921471]
[0.4981533, 0.49922156]
[0.49815425, 0.49922514]
[0.49815568, 0.4992153]
[0.49816135, 0.49922994]
[0.49815443, 0.49921793]
[0.49815369, 0.49921811]
[0.49815857, 0.4992213]
[0.49815249, 0.49921635]
[0.49815717, 0.49922404]
[0.49815562, 0.49922115]
[0.49815992, 0.49922723]
[0.49816322, 0.49921566]
[0.49815544, 0.49922326]
[0.4981539, 0.49922061]
[0.49815902, 0.49923074]
[0.49816567, 0.49922168]
[0.49816078, 0.49921575]
[0.49815938, 0.49921471]
[0.49815077, 0.4992201]
[0.49815583, 0.49921182]
[0.49815345, 0.49921283]
[0.4981598, 0.49921614]
[0.49815416, 0.49921855]
[0.49815762, 0.4992173]
[0.49815825, 0.49921978]
[0.49815825, 0.49922138]
[0.49815908, 0.49921981]
[0.49815544, 0.49921504]
[0.49816117, 0.49923223]
[0.49816099, 0.49921462]
[0.49815351, 0.49922308]
[0.49816227, 0.49923256]
[0.49815354, 0.49922392]
[0.49815038, 0.49922356]
[0.49816525, 0.49922138]
[0.49815342, 0.49922705]
[0.49815989, 0.49922326]
[0.49815401, 0.49921766]
[0.49815825, 0.49921879]
[0.49815637, 0.49921662]
[0.49815908, 0.49922174]
[0.49815243, 0.49921563]
[0.49815255, 0.49921766]
[0.49815673, 0.49921358]
[0.49816242, 0.49922019]
[0.49816835, 0.4992229]
[0.49815518, 0.49920934]
[0.49815202, 0.49921903]
[0.49815437, 0.49922141]
[0.49815497, 0.49921486]
[0.49815184, 0.49921608]
[0.49815631, 0.49922335]
[0.49815813, 0.49921325]
[0.49815223, 0.49922213]
[0.49815005, 0.49921677]
[0.49815634, 0.49921936]
[0.49816167, 0.49923047]
[0.49815112, 0.49921957]
[0.49815676, 0.49921891]
[0.49815649, 0.49922562]
[0.49815223, 0.49921489]
[0.49815086, 0.49922147]
[0.49815762, 0.49921981]
[0.49815792, 0.49921963]
[0.49815729, 0.49921337]
[0.49815807, 0.49922234]
[0.49815661, 0.49921706]
[0.49815363, 0.49922809]
[0.49815917, 0.49921337]
[0.4981555, 0.49922144]
[0.49816197, 0.49922115]
[0.49815977, 0.49922109]
[0.49816063, 0.4992297]
[0.49815196, 0.49921131]
[0.49814603, 0.49921173]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/308020.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

目录 前置 一、上传&解压 &#xff08;一 &#xff09;上传 &#xff08;二&#xff09;解压 二、修改配置文件 &#xff08;一&#xff09;配置workers文件 &#xff08;二&#xff09;配置hadoop-env.sh文件 &#xff08;三&#xff09;配置core-site.xml文件 &…

JS sort方法踩坑

JavaScript的sort()方法在默认情况下将数组元素视为字符串进行排序&#xff0c;而不是按照数字的大小。因此&#xff0c;对于包含数字的数组&#xff0c;sort()方法会按照字符串的排序规则进行排序。 例如&#xff0c;对于[2, 11]这个数组&#xff0c;按照字符串的排序规则&…

从 iPhone 上的短信中恢复已删除的图片的可靠方法

您可能在浏览消息聊天时不小心删除了一些文本和照片。事实上&#xff0c;如果这些消息对你来说意义重大&#xff0c;那对你来说可能会很麻烦。当发生意外情况时&#xff0c;您可能不想恢复整个聊天&#xff0c;而是恢复其中的附件。 好了&#xff0c;这篇文章主要是讲如何灵活…

Kubernetes学习笔记12

k8s核心概念&#xff1a;控制器&#xff1a; 我们删除Pod是可以直接删除的&#xff0c;如果生产环境中的误操作&#xff0c;Pod同样也会被轻易地被删除掉。 所以&#xff0c;在K8s中引入另外一个概念&#xff1a;Controller&#xff08;控制器&#xff09;的概念&#xff0c;…

AI PC元年,华为的一张航海图、一艘渡轮和一张船票

今天&#xff0c;从学术研究者到产业投资者&#xff0c;无不认为大模型掀起了一场人工智能的完美风暴。 所谓“完美风暴”&#xff0c;指的是一项新技术的各个要素&#xff0c;以新的方式互相影响、彼此加强&#xff0c;组合在一起形成了摧枯拉朽般的力量。 而我们每个人&#…

【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步…

你的高佣副业不二之选,开始流量卡推广,一文看懂号卡推广

在这个信息化的时代&#xff0c;网络已成为人们生活中不可或缺的一部分。然而&#xff0c;在享受着便捷与高效的同时&#xff0c;我们也必须面对一个现实问题&#xff0c;也就是高昂的流量费用。为了解决这一困扰广大用户的痛点&#xff0c;我们今天带来了一个极具吸引力的机会…

Sonatype Nexus 服务器迁移

因为服务器的升级和调整&#xff0c;有时候会对安装 Sonatype Nexus 的服务器进行迁移到新服务器上。 从技术架构上来说&#xff0c;Sonatype Nexus 我们使用的是 AWS 的存储&#xff0c;所以我们并不需要拷贝大量的数据。 文件夹结构 在备份和恢复之前&#xff0c;我们需要…

11 Php学习:函数

PHP 内建函数Array 函数 PHP Array 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。 创建 PHP 函数 当您需要在 PHP 中封装一段可重复使用的代码块时&#xff0c;可以使用函数。下面详细解释如何创建 PHP 函数并举例说明。 创建 PHP 函数的语法 PHP 函数的基…

前端CSS讲义1

什么是 CSS? CSS 指层叠样式表 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中&#xff0c;是为了解决内容与表现分离的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一 样式对网页中元素…

【opencv】示例-morphology2.cpp 形态学操作:膨胀、腐蚀、开运算、闭运算

element_shape MORPH_ELLIPSE; element_shape MORPH_RECT element_shape MORPH_CROSS; // 包含必要的OpenCV头文件 #include "opencv2/imgproc.hpp" // 图像处理 #include "opencv2/imgcodecs.hpp" // 图像编码解码 #include "opencv2/highgui.hpp…

2024年认证杯数学建模挑战赛C题全解析

2024年认证杯C题的已经完成啦&#xff0c;包括参考论文&#xff0c;模型代码&#xff0c;分享给大家&#xff5e; 问题分析 对于这些问题&#xff0c;我们首先需要确定影响日光辐射降低效应的关键参数&#xff0c;例如海盐气溶胶的浓度、粒子大小、分布以及喷洒高度和范围。同…

【央国企专场】——国家电网

国家电网目录 一、电网介绍1、核心业务2、电网组成 二、公司待遇三、公司招聘1、招聘平台2、考试安排2.3 考试内容 一、电网介绍 1、核心业务 国家电网公司&#xff08;State Grid Corporation of China&#xff0c;简称SGCC&#xff09;是中国最大的国有企业之一&#xff0c…

Vue3——html-doc-ja(html导出为word的js库)

一、下载 官方地址 html-doc-js - npm npm install html-doc-js 二、使用方法 // 使用页面中引入 import exportWord from html-doc-js// 配置项以及实现下载方法 const wrap document.getElementById(test)const config {document:document, //默认当前文档的document…

H2O-3机器学习平台源码编译的各种坑

H2O-3机器学习平台是一个非常适合非专业人士学习机器学习的平台&#xff0c;自带WebUI&#xff0c;效果还是蛮不错的&#xff0c;官方也提供了jar包&#xff0c;一条命令就能直接运行&#xff0c;非常方便&#xff0c;但最近有源码编译的需求&#xff0c;实际操作过程中&#x…

【计算机毕业设计】日用百货交易网站——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

Chatgpt掘金之旅—有爱AI商业实战篇|播客剧本写作|(十三)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术创业播客剧本写作服务有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。…

4、jvm-垃圾收集算法与垃圾收集器

垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法&#xff0c;这种算法没有什么新的思想&#xff0c;只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代&#xff0c;这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比如…

最新Zibll子比主题V7.1版本源码 全新推出开心版

源码下载地址&#xff1a;Zibll子比主题V7.1.zip

JavaEE实验三:3.5学生信息查询系统(动态Sql)

题目要求: 使用动态SQL进行条件查询、更新以及复杂查询操作。本实验要求利用本章所学知识完成一个学生信息系统&#xff0c;该系统要求实现3个以下功能: 1、多条件查询&#xff1a; 当用户输入的学生姓名不为空&#xff0c;则根据学生姓名进行学生信息的查询&#xff1b; 当用户…