OpenCV机器学习(1)人工神经网络 - 多层感知器类cv::ml::ANN_MLP

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::ml::ANN_MLP 是 OpenCV 库中的一部分,用于实现人工神经网络 - 多层感知器(Artificial Neural Network - Multi-Layer Perceptron, ANN-MLP)。它提供了一种方式来创建和训练多层感知器模型,以解决分类、回归等问题。

主要特点

  • 多层架构:支持一个输入层、多个隐藏层和一个输出层。
  • 激活函数:可以选择不同的激活函数,如Sigmoid、Identity、ReLU等。
  • 训练算法:包括误差反向传播算法,用户可以指定参数如迭代次数、终止条件等。
  • 正则化参数:可以设置权重衰减项,帮助防止过拟合。

常用成员函数

  • create(): 创建一个指定层数和每层神经元数目的网络。
  • setLayerSizes(): 设置每一层的大小(神经元数量)。
  • setActivationFunction(): 设置使用的激活函数。
  • train(): 使用提供的数据集进行模型训练。
  • predict(): 对新的输入数据进行预测。
  • save()/load(): 保存和加载训练好的模型。

使用步骤

  • 初始化网络:使用 create() 函数初始化网络,并通过 setLayerSizes() 定义网络结构。
  • 配置训练参数:选择激活函数、设置训练方法及相应参数。
  • 准备数据:准备好训练数据集和标签。
  • 训练模型:调用 train() 方法对模型进行训练。
  • 评估与预测:利用 predict() 方法对新数据进行预测,并根据需要评估模型性能。

代码示例

include <iostream>
#include <opencv2/ml.hpp>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace cv::ml;
using namespace std;int main()
{// 训练数据及对应标签float trainingData[ 8 ][ 2 ] = { { 480, 500 }, { 50, 130 }, { 110, 32 }, { 490, 60 }, { 60, 190 }, { 200, 189 }, { 78, 256 }, { 45, 315 } };float labels[ 8 ]            = { 0, 1, 0, 0, 1, 0, 1, 1 };Mat trainingDataMat( 8, 2, CV_32FC1, trainingData );Mat labelsMat( 8, 1, CV_32FC1, labels );// 创建ANN_MLP模型Ptr< ANN_MLP > model = ANN_MLP::create();// 设置网络结构:输入层大小为2,隐藏层大小为2,输出层大小为1Mat layerSizes = ( Mat_< int >( 1, 3 ) << 2, 2, 1 );model->setLayerSizes( layerSizes );// 设置激活函数model->setActivationFunction( ANN_MLP::SIGMOID_SYM );// 设置训练方法model->setTrainMethod( ANN_MLP::BACKPROP );model->setBackpropWeightScale( 0.1 );model->setBackpropMomentumScale( 0.1 );// 设置迭代终止准则TermCriteria termCrit = TermCriteria( TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, 0.01 );model->setTermCriteria( termCrit );// 准备训练数据Ptr< TrainData > tData = TrainData::create( trainingDataMat, ROW_SAMPLE, labelsMat );// 训练模型model->train( tData );// 预测新数据点Mat sampleMat = ( Mat_< float >( 1, 2 ) << 500, 500 );Mat responseMat;float predictedClass = model->predict( sampleMat, responseMat );cout << "Predicted class: " << predictedClass << endl;return 0;
}

运行结果

Predicted class: 0

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

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

相关文章

Qt中的事件

写一个 可以拖动的按钮 DraggablePushButton.h 头文件 #ifndef DRAGGABLEPUSHBUTTON_H #define DRAGGABLEPUSHBUTTON_H#include <QPushButton> #include <QMouseEvent>class DraggablePushButton : public QPushButton {Q_OBJECTpublic:explicit DraggablePushBu…

Postgresql 开发环境搭建指南(WindowsLinux)

一、Postgresql 简介 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)&#xff0c;在灵活的BSD许可证下发行。 RDBMS 是关系数据库管理系统&#xff0c;是建立实体之间的联系&#xff0c;最后得到的是关系表。 ORDBMS在原来关系数据库的基础上&#xff0c;增加了一些新…

2025前端面试题

2025前端面试题 uniappuniapp如何打包发版到线上 vuevue3构建项目vue如何封装组件vue2的响应式原理vue3的响应式原理vue3和2的区别Vuex中的重要核心属性有哪些&#xff1f;Vue-router有哪几种路由守卫 es6数组有哪些常用方法ES6的新特性Promiseasync/await防抖和节流&#xff0…

大语言模型多代理协作(MACNET)

大语言模型多代理协作(MACNET) Scaling Large-Language-Model-based Multi-Agent Collaboration 提出多智能体协作网络(MACNET),以探究多智能体协作中增加智能体数量是否存在类似神经缩放定律的规律。研究发现了小世界协作现象和协作缩放定律,为LLM系统资源预测和优化…

dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型

要将 dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型. 申请阿里云百练的KEY 添加模型 测试模型

Win10环境使用Dockerdesktop部署Dify集成Deepseek

Win10环境借助Dockerdesktop部署Dify集成Deepseek 前言 之前笔者已经部署了基于Ollama的Deepseek&#xff1a; https://lizhiyong.blog.csdn.net/article/details/145505686 安装官方指示&#xff0c;还可以集成很多组件拓展玩法&#xff1a; https://github.com/deepseek…

23、深度学习-自学之路-激活函数relu、tanh、sigmoid、softmax函数的正向传播和反向梯度。

在使用这个非线性激活函数的时候&#xff0c;其实我们重点还是学习的是他们的正向怎么传播&#xff0c;以及反向怎么传递的。 如下图所示&#xff1a; 第一&#xff1a;relu函数的正向传播函数是&#xff1a;当输入值&#xff08;隐藏层&#xff09;值大于了&#xff0c;就输出…

cameralib 安装

目录 linux安装&#xff1a; 测试安装是否成功&#xff1a; linux安装&#xff1a; pip install githttps://github.com/isarandi/cameralib.git pip install githttps://github.com/isarandi/boxlib.git pip install githttps://github.com/isarandi/poseviz.git githttps…

ML.NET库学习005:基于机器学习的客户细分实现与解析

文章目录 ML.NET库学习005&#xff1a;基于机器学习的客户细分实现与解析项目主要目的和原理目的原理 项目概述实现的主要功能主要流程步骤使用的主要函数方法关键技术 主要功能和步骤功能详细解读详细步骤解析 数据集及其处理步骤数据集处理步骤关键处理步骤原理1. 数据清洗与…

webpack打包优化策略

1. 减少打包体积 减少打包文件的大小是为了提高加载速度&#xff0c;降低网络带宽消耗&#xff0c;提升用户体验。常见的减少打包体积的优化策略包括&#xff1a; 代码分割&#xff08;Code Splitting&#xff09;&#xff1a;将代码拆分成多个小文件&#xff0c;让浏览器按需…

RocketMQ与kafka如何解决消息积压问题?

前言 消息积压问题简单来说&#xff0c;就是MQ存在了大量没法快速消费完的数据&#xff0c;造成消息积压的原因主要在于“进入的多&#xff0c;消费的少”&#xff0c;或者生产的速度过快&#xff0c;而消费速度赶不上&#xff0c;基于这一问题&#xff0c;我们主要介绍如何通过…

RISC-V平台编译 state-thread x264 ffmpeg zlog

1.state-threads 源码下来之后 直接 make linux-debug 目录下生成了对应的.a 和 .h文件 gcc test.c -o test -l st -L . #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <sys/socket.h&g…

用easyExcel如何实现?

要使提供的 ExcelModelListener 类来解析 Excel 文件并实现批量存储数据库的功能&#xff0c;需要结合 EasyExcel 库来读取 Excel 数据。具体来说&#xff0c;可以使用 EasyExcel.read() 方法来读取 Excel 文件&#xff0c;并指定 ExcelModelListener 作为事件监听器。 下面是…

BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234【代码审计/序列化/RCE】

Hint1&#xff1a;本题的 flag 不在环境变量中 Hint2&#xff1a;session_start&#xff08;&#xff09;&#xff0c;注意链子挖掘 题目&#xff1a; 扫描出来www.zip class.php <?phpclass Admin{public $Config;public function __construct($Config){//安全获取基…

Mysql中使用sql语句生成雪花算法Id

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

Go框架面试突击!30道高频题解析

前言 有粉丝朋友问我能不能整理Go主流框架方面的面试题&#xff0c;安排&#xff01; 这篇文章分享了gRPC、GoFrame、GoZero、GoMicro、GORM、Gin等主流框架的30道面试题和详解。 需要大厂面经的朋友们也可以直接加我好友&#xff0c;私信我。 gRPC 1.gRPC是什么&#xff…

@JsonRawValue 注解

这里写目录标题 1. 问题2. JsonRawValue 注解说明 1. 问题 在实际开发中我遇到这样一个问题&#xff0c;查询数据库的结果返回的content内容是含有转移符的JSON字符串&#xff0c;但是我需要返回的不包含转移的String字符串。经过我一顿折腾并未发现解决办法&#xff0c;直到J…

node.js+兰空图床实现随机图

之前博客一直用的公共的随机图API&#xff0c;虽然图片的质量都挺不错的&#xff0c;但是稳定性都比较一般&#xff0c;遂打算使用之前部署的兰空图床&#xff0c;自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作&#xff0c;有兴趣的话可…

MySQL binlog的三种模式

MySQL 的 binlog&#xff08;Binary Log&#xff09; 默认的模式是 STATEMENT&#xff0c;即 语句模式。在这种模式下&#xff0c;MySQL 会记录所有对数据库执行的数据修改操作&#xff08;如 INSERT、UPDATE、DELETE 等&#xff09;的 SQL 语句。 1. binlog 的三种模式 MySQL…

25农村发展研究生复试面试问题汇总 农村发展专业知识问题很全! 农村发展复试全流程攻略 农村发展考研复试真题汇总

农村发展复试当然有好的建议&#xff01;前提是复试重点面试题背好&#xff01; 你是不是也在为农村发展考研复试发愁&#xff1f;担心自己准备不充分、表现不好&#xff1f;别急&#xff01;今天&#xff0c;学姐——复试面试拿下90分成功上岸的学姐&#xff0c;来给大家分享…