深度学习模型:卷积神经网络(CNN)
一、前言
CNN 的发展历程可以追溯到 20 世纪 80 年代和 90 年代。受生物视觉系统的启发,研究人员开始探索如何构建专门用于处理图像数据的神经网络。早期的一些研究奠定了基础,例如 Fukushima 提出的 Neocognitron 模型。 随着时间的推移,到了 21 世纪初,LeCun 等人提出了 LeNet-5,这是一个具有里程碑意义的 CNN 架构,成功应用于手写数字识别任务,为 CNN 在图像识别领域的广泛应用开启了大门。
二、CNN 的原理
(一)卷积层
卷积层是 CNN 的核心组件之一。它通过卷积核(滤波器)在图像上滑动,对局部区域进行特征提取。卷积核就像是一个小的特征探测器,不同的卷积核可以检测到图像中的不同特征,如边缘、纹理等。 例如,一个 3x3 的卷积核在图像上逐像素滑动,与对应区域的像素值进行加权求和,得到新的特征图。通过使用多个卷积核,可以提取出多维度的图像特征。
(二)池化层
池化层的主要作用是对特征图进行降维,减少计算量和参数数量,同时保留重要的特征信息。常见的池化操作有最大池化和平均池化。最大池化会在池化窗口内选取最大值作为输出,而平均池化则计算窗口内的平均值。池化操作可以逐步缩小特征图的尺寸,使网络能够关注到更宏观的特征。
(三)全连接层
在经过多个卷积层和池化层后,通常会连接全连接层。全连接层将前面提取到的特征进行整合,通过神经元之间的全连接关系进行分类或回归等任务的处理。例如,在图像分类任务中,全连接层根据学习到的特征模式判断图像属于哪一个类别。
(四)激活函数
与普通神经网络类似,CNN 中也使用激活函数来引入非线性因素。常用的激活函数如 ReLU(Rectified Linear Unit),它在输入大于 0 时输出输入值,小于 0 时输出 0。ReLU 函数能够加速网络的训练,并且有效缓解梯度消失问题。
三、CNN 的实现
(一)选择深度学习框架
目前有许多强大的深度学习框架可供选择,如 TensorFlow、PyTorch 等。这些框架提供了丰富的函数和工具,方便我们构建 CNN 模型。以 TensorFlow 为例,它具有高效的计算图构建和执行能力,适合大规模的深度学习任务。
(二)数据准备
对于图像数据,首先需要进行数据预处理。这包括图像的读取、裁剪、缩放、归一化等操作。例如,将图像统一调整为相同的大小,将像素值归一化到 0 到 1 之间,同时划分训练集、验证集和测试集。
(三)构建模型
在 TensorFlow 中,可以使用 Keras 模块快速构建 CNN 模型。首先定义输入层,指定输入图像的形状。然后添加卷积层,设置卷积核的大小、数量和激活函数等参数。接着添加池化层,选择合适的池化方式和池化窗口大小。之后可以重复添加卷积层和池化层以提取更复杂的特征。最后添加全连接层,并设置输出层的神经元数量和激活函数,用于最终的分类或回归任务。
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense# 构建模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) # 第一个卷积层
model.add(MaxPooling2D((2, 2))) # 第一个池化层
model.add(Conv2D(64, (3, 3), activation='relu')) # 第二个卷积层
model.add(MaxPooling2D((2, 2))) # 第二个池化层
model.add(Flatten()) # 展平层,将多维特征图转换为一维向量
model.add(Dense(128, activation='relu')) # 全连接层
model.add(Dense(10, activation='softmax')) # 输出层,用于 10 分类任务
(四)模型训练
构建好模型后,需要选择合适的损失函数(如交叉熵损失函数用于分类任务)和优化器(如 Adam 优化器),然后使用训练数据对模型进行训练。在训练过程中,可以设置训练的轮数、批次大小等参数,并通过回调函数监控训练过程中的损失值和准确率等指标。
# 编译模型
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32,validation_data=(x_val, y_val))
(五)模型评估与应用
训练完成后,使用测试集对模型进行评估,计算模型的准确率、召回率等指标,以评估模型的性能。如果模型性能满足要求,就可以将其应用于实际的图像识别或处理任务中,例如对新的图像进行分类预测。
# 评估模型
loss, accuracy = model.evaluate(x_test, y_test)# 预测
predictions = model.predict(x_new_images)
相关文章:
深度学习模型:卷积神经网络(CNN)
一、前言 CNN 的发展历程可以追溯到 20 世纪 80 年代和 90 年代。受生物视觉系统的启发,研究人员开始探索如何构建专门用于处理图像数据的神经网络。早期的一些研究奠定了基础,例如 Fukushima 提出的 Neocognitron 模型。 随着时间的推移,到…...
Flask 自定义路由转换器
步骤 创建自定义转换器类 继承 werkzeug.routing.BaseConverter。实现 to_python 和(可选)to_url 方法。 将转换器注册到 Flask 应用 在路由中使用转换器 示例 创建转换器 假设需要自定义一个转换器 FourDigitYearConverter,用于匹配四位年…...
【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?
博客主页: [青松] 本文专栏: NLP 大模型百面百过 【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么? 重要性:★★★ 💯 本题主要考察面试者对以下问题的理解: ① 数据特征和模…...
gocv调用opencv添加中文乱码的解决方案
前言 相信很多做视觉的同学在使用opencv给图片添加中文文字的时候会出现这样的乱码显示: 而实际上你期望的是“告警时间:2011-11-11 11:11:11 告警类型:脱岗检测告警 Area:XXXXX Camera:Camera001-001”这样的显示内容,那么这篇文章我将用很简单的方法来解决乱码问题,只需…...
org.apache.log4j的日志记录级别和基础使用Demo
org.apache.log4j的日志记录级别和基础使用Demo,本次案例展示,使用是的maven项目,搭建的一个简单的爬虫案例。里面采用了大家熟悉的日志记录插件,log4j。来自apache公司的开源插件。 package com.qian.test;import org.apache.log…...
IC数字后端实现之大厂IC笔试真题(经典时序计算和时序分析题)
今天小编给大家分享下每年IC秋招春招必考题目——静态时序分析时序分析题。 数字IC后端笔试面试题库 | 经典时序Timing计算题 时序分析题1: 给定如下图所示的timing report,请回答一下几个问题。 1)这是一条setup还是hold的timing report?…...
java centos 离线使用sherpa-onnx文字转语音TTS
sherpa-onnx: https://github.com/k2-fsa/sherpa-onnx.git 文档链接;Java API — sherpa 1.3 文档 1. 项目基础介绍和主要编程语言 sherpa-onnx 是一个基于下一代 Kaldi 和 onnxruntime 的开源项目,专注于语音识别、文本转语音、说话人识别和语音活动检测(VAD)等功能。该项…...
Android 11 三方应用监听关机广播ACTION_SHUTDOWN
前言 最近有项目过程中,有做app的同事反馈,三方应用无法监听关机广播。特地研究了下关机广播为啥监听不到。 1.原因:发送关机广播的类是ShutdownThread.java,添加了flag:Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_RECEIVER…...
OpenHarmony-3.驱动HDF
OpenHarmony HDF 框架 1.OpenHarmony HDF 框架概述 OpenHarmony驱动子系统采用C面向对象编程模型构建,通过平台解耦、内核解耦,兼容不同内核,提供了归一化的驱动平台底座,旨在为开发者提供更精准、更高效的开发环境,力…...
《白帽子讲Web安全》13-14章
《白帽子讲Web安全》13-14章 《白帽子讲Web安全》13-14章13、应用层拒绝服务攻击13.1、DDOS简介13.2、应用层DDOS13.2.1、CC攻击13.2.2、限制请求频率13.2.3、道高一尺,魔高一丈 13.3、验证码的那些事儿13.4、防御应用层DDOS13.5、资源耗尽攻击13.5.1、Slowloris攻击…...
CSS - CSS One-Line
1. aspect-ratio 描述: 用于定义元素的宽高比,简化了以往使用“填充黑客”的方法。只需指定一个比率,浏览器会自动调整元素的尺寸 案例: .aspect-ratio-hd {aspect-ratio: 16/9; } .aspect-ratio-square {aspect-ratio: 1; /* 正方形 */ }2. object-…...
gitlab ssh-key 绑定
windows环境下配置 gitlab的ssh key: 1.打开本地git bash,使用如下命令生成ssh公钥和私钥对: ssh-keygen -t rsa -C xxxxxx.com 2.一直回车; 3.然后打开公钥文件:C:/Users/Administrator/.ssh/id_rsa.pub文件,复制其中的内容; 4…...
wordpress使用Markdown语法写的文章图片显示不正常,记录一次折腾之旅
wordpress使用Markdown语法写的文章图片显示不正常,记录一次折腾之旅 当我把wordpress站点地址改成域名之后,wordpress上写的文章是使用Markdown语法进行写作的,但是Markdown引用的图片就会加载不出来,但如果把站点地址改成局域网的IP,所有的一切都显示正常了。除非我把图…...
从零开始学GeoServer源码(二)添加支持arcgis切片功能
文章目录 参考文章环境背景1、配置打包好的程序1.1、下载GeoServer的war包1.2、下载GeoWebCache1.3、拷贝jar包1.4、修改配置文件1.4.1、拷贝geowebcache-arcgiscache-context.xml1.4.2、修改geowebcache-core-context.xml1.4.3、修改geowebcache-servlet.xml 1.5、配置切片信息…...
WPF异步UI交互功能的实现方法
前面的文章我们提及过,异步UI的基础实现。基本思路主要是开启新的UI线程,并通过VisualTarget将UI线程上的Visual(即RootVisual)连接到主线程上的UI上即可渲染显示。 但是,之前的实现访问是没有交互能力的,视觉树上的UI并不能实现…...
网络基础 - 地址篇
一、IP 地址 IP 协议有两个版本,IPv4 和 IPv6IP 地址(IPv4 地址)是一个 4 字节,32 位的正整数,通常使用 “点分十进制” 的字符串进行表示,例如 192.168.0.1,用点分割的每一个数字表示一个字节,范围是 0 ~…...
# [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解
Unity脚本编程是创建互动式游戏体验的核心技能之一。本文将详细讲解Unity脚本编程的基础知识,包括变量和数据类型、程序逻辑、方法等方面,并通过实例展示如何使用这些基本知识完成简单功能的实现。 1. 新建Unity脚本的基本结构 当在Unity中创建一个脚本时,Unity会生成如下基…...
Milvus实操
概念 Milvus 关键概念优化笔记 Milvus 是一个高性能、可扩展的开源向量数据库,专为处理海量向量数据和执行相似性搜索而设计。以下是 Milvus 中的一些核心概念及其详细解释。 1. 集合(Collection) 定义: 集合是 Milvus 中存储向…...
35 基于单片机的精确电压表DA-AD转换
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用DAC0832和ADC0832检测电压,0到8.5V,设计复位电路 LED管显示实际稳压值,初始电压0 二、硬件资源 基于KEIL5编写C代码,…...
JDBC 设置 PostgreSQL 查询中 any(?) 的参数
这段时间都纠缠于 Java 如何操作 PostgreSQL 数据库上,千方百计的为求得更好的性能。为此我们用上了 Batch, 或用 id any(?) 这种更 PostgreSQL 化的数组参数操作。其实它还有更多数组方面的花样可以玩,毕竟 PostgreSQL 数据库有一种广纳百川的胸怀&am…...
【11-20期】Java面试进阶:深入解析核心问题与实战案例
🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 文章题目:Java面试进阶:深入解析11-20期核心问题与实战案例 摘要: 本篇…...
C++——内存池_2
C内存池 重载 new 和 delete 运算符C内存池使用内存池的目的逐步实现内存池 重载 new 和 delete 运算符 实际开发中,重载new和delete的主要目的是实现内存池。内存池在高性能的服务程序中很常用。点击浏览重载 new 和 delete 运算符的内容,建议先看这部…...
如何使用PHP爬虫获取店铺详情:一篇详尽指南
在数字化时代,数据的价值不言而喻。对于企业来说,获取竞争对手的店铺详情、顾客评价等信息对于市场分析和决策至关重要。PHP作为一种广泛使用的服务器端脚本语言,结合其强大的库支持,使得编写爬虫程序变得简单而高效。本文将详细介…...
HTML5和CSS3新增特性
HTML5的新特性 HTML5新增的语义化标签 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量…...
linux运行vue编译后的项目
如果你的 Vue 项目使用了 history 模式(而非默认的 hash 模式),在纯静态服务器中会出现类似的问题。因为 Vue Router 的 history 模式要求所有未匹配的路径都重定向到 index.html,以便 Vue 前端处理路径。 首先在本地执行npm run…...
论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline
论文代码开源链接: A Software Platform for Manipulating the Camera Imaging Pipelinehttps://karaimer.github.io/camera-pipeline/摘要:论文提出了一个Pipline软件平台,可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块…...
【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…...
Ubuntu下安装Qt
1.如图1所示,在Index of /archive上下载安装包; 图1 2.将图1安装包下载好之后,通过共享文件夹的方式拷贝到ubutntu,如图2所示; 图2 3.如图3所示,执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...
丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU
目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大 平台功能介绍 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undo …...
一级a做爰片免费观看 安全网站/百度舆情
看到Python中有个函数名比较奇特,__init__我知道加下划线的函数会自动运行,但是不知道它存在的具体意义..Python中所有的类成员(包括数据成员)都是 公共的 ,所有的方法都是 有效的 。只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如__privat…...
南通网站托管/seo导航站
包括对缺陷的跟踪管理。测试管理工具能让测试人员、开发人员或其他的IT人员 通过一个中央数据仓库,在不同地方就能交互信息。4. 测试环境4.1. 硬件环境1> 处理器:Intel Pentium 166 MX 或更高 2> 内存:32MB 以上 3> 硬盘空间&#x…...
网站制作中英文天津/seo综合查询国产
目录 1.开启Hadoop集群和Hive元数据、Hive远程连接 2.配置 3.读取日志文件并清洗 4.单独处理第四列的数据——方法一: 5.单独处理第四列的数据——方法二: 6.单独处理第四列的数据——方法三: 7.数据清洗结果展示 8.存入Hive中 9.…...
公司做网站多/搜索引擎优化方法有哪些
作者:瀚高PG实验室 (Highgo PG Lab)- 波罗 autovacuum 是 postgresql 里非常重要的一个服务端进程,能够自动地执行,在一定条件下自动地对 dead tuples 进行清理并对表进行分析 autovacuum参数控制 autovacuum 进程是…...
基础集团网站建设/惊艳的网站设计
选择宣传册的尺寸,是开始宣传册设计的第一步,宣传册印刷样式多种多样,做法千变万化,但是宣传册尺寸是宣传册的基调,最常规的规格主要有以下几种:1、最常规的宣传册印刷尺寸,适合绝大多数企业和场…...
新校区建设网站管理规定/杭州疫情最新情况
如果版本开发测试过程中没有流程的约束,会出现什么样的情况?如果不管版本大小、不考虑版本特性强制使用标准流程约束,又会是什么样?我经常听到的抱怨是流程太厚重了,流程导致了版本开发周期变长、成本增加了。可是&…...