CNN网络简单介绍

1.概述

卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理具有网格状结构数据的深度学习模型。

​ CNN网络主要有三部分构成:卷积层、池化层和全连接层构成,其中卷积层负责提取图像中的局部特征;池化层用来大幅降低运算量并特征增强;全连接层类似神经网络的部分,用来输出想要的结果。

特点

CNN 网络主要应用于视觉处理,通常位于神经网络的前端(上游),通过卷积层和池化层自动提取图像的局部和全局特征,生成紧凑且有区分度的表示,为后续网络(如全连接层)进行分类或其他任务提供高效输入,同时减少计算复杂度和参数量。

为什么会说减少参数量?

如果用全连接神经网络处理图片,每个像素点都会对应一组参数,因此参数量非常大;而使用卷积神经网络时,通过卷积核的权重共享机制,一个卷积核就可以作用于整个图像区域,从而大幅减少参数数量,同时提取局部特征。

2.卷积层

卷积层(Convolutional Layer是 CNN 的核心组成部分,主要作用是从输入图像中自动提取局部特征。通过卷积核在图像上滑动,卷积层能够捕捉边缘、纹理、形状等低级特征,并通过多层堆叠逐步抽象成更高级的语义特征。同时,卷积核的权重共享机制大幅减少了参数量,使网络在保持空间结构信息的同时,提高了特征提取效率。

卷积核:卷积核是卷积运算过程中必不可少的一个“工具”,其本质上是一个的矩阵。

在定义卷积核时我们需要考虑:

  • 卷积核的个数:卷积核的个数决定了输出特征矩阵的通道数也就是outfeature的个数。
  • 卷积核的大小(size):一般的卷积核大小为奇数×奇数,如3×3、5×5.

例如一个3*3的卷积核:

在这里插入图片描述

卷积运算:

卷积的过程是利用卷积核图像上进行滑动计算,从左到右,从上往下,每滑动到一个位置,卷积核和图像进行点对点的相乘并相加,最后得到一个新的值,将这个新值添加到特征图中,整个图片卷积结束后得到一个新的特征图。

在这里插入图片描述

在这里插入图片描述

卷积的重要性在于它可以将图像中的特征与卷积核进行卷积操作,从而提取出图像中的特征。(类比:卷积核像一个小模板,它在图像上滑动,输出值越大,就表示该区域“越像”卷积核所关注的特征模式(例如边缘方向或纹理)。)

应用Pytorch框架自定义卷积层:

from torch import nnclass MyNet(nn.module):def __init__(self):super(MyNet, self).__init__()self.conv = nn.Conv2d(in_channels=32,  # 输入通道out_channels=128,  # 输出通道kernel_size=(5, 5),  # 卷积核大小stride=1,  # 步长padding=0,  # 填充bias=True)def forward(self,x):x = self.conv(x)return xmodel = MyNet()
model(img) # img为需要处理的图片
  • in_channels:输入数据的通道数
  • out_channels:输出数据的通道数,这个参数决定了你有多少个卷积核。
  • kernel_size:卷积核大小
  • stride:卷积操作的步长,默认为1。
  • padding:边缘填充值,默认为0(不进行填充)
  • bias:布尔值,是否设置偏置

注意:

  1. 每个卷积核得到一个新的特征图,即有多少个卷积核就有多少个特征图,多通道图片卷积得到的新图片为当前卷积核对每个通道卷积后按位相加得到的最终图。
  2. 在传入图片时,数据格式为(N, C, H, W)。N表示批次数(样本个数)、C表示通道数、H表示高、W表示宽。

特征图大小(图片尺寸)计算:

特征图大小计算公式:
N=W−F+2PS+1 N=\frac{W-F+2P}{S}+1 N=SWF+2P+1

  • W:输入图片的大小
  • F:卷积核大小
  • S:步长
  • P:边缘是否填充,填充为1,否则为0
  • N:输出图片的大小

3.池化层

池化层通常紧跟在卷积层之后,用于下采样和特征压缩。

下采样: 减少数据的空间或时间分辨率,保留主要信息同时压缩数据量。

所以池化层的作用就是减少一定的数据量但同时保留重要的数据。

池化层的运算与卷积相似,他们都采用了滑动窗口的思想,通过对局部的数据进行处理输出一个新的图像。

池化层主要分为两种——最大池化和平均池化。

应用Pytorch创建池化层:

pool = nn.MaxPool2d(kernel_size=3,stride=1,padding=0,dilation=1,return_indices=True
)out = pool(img)

kernel:池化窗口大小,int或tuple,如3表示窗口大小为3×3

stride:步长

padding:边缘填充

dilation:池化窗口内部元素的间隔

return_indices:是否返回新图像中的像素点在原图像中的下标,最大池化使用。

  • 最大池化

在这里插入图片描述

左侧为输入图像,右侧为输出图像。最大池化就是取局部区域的最大值作为新图像像素点的像素值。最大池化在提取图像中的纹理、形状等方面具有很好的效果。

  • 平均池化

将局部区域中的值取平均作为池化后的值,这样可以得到整体特征的平均值。平均池化在提取图像中的整体特征、减少噪声等方面具有较好的效果。

在这里插入图片描述

优点:

  1. 降低特征图的尺寸,减少计算量,提升模型运行效率。
  2. 池化操作可以带来特征的平移、旋转等不变性,这有助于提高模型对输入数据的鲁棒性。
  3. 池化层通常是非线性操作,可以增强网络的表达能力,进一步提升模型的性能。

缺点:可能会丢失一些信息。

总结

  1. 降低特征图的尺寸,减少计算量,提升模型运行效率。
  2. 池化操作可以带来特征的平移、旋转等不变性,这有助于提高模型对输入数据的鲁棒性。
  3. 池化层通常是非线性操作,可以增强网络的表达能力,进一步提升模型的性能。

缺点:可能会丢失一些信息。

总结

​ CNN 网络通常位于神经网络的前端(上游),主要由卷积层和池化层组成,用于自动提取图像特征、减少计算量,并增强模型的鲁棒性和表达能力,从而提升整体性能。

以上内容是博主学习深度学习的一些总结笔记,若文章中出现错误请及时指正博主,感谢浏览☆噜~☆

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

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

相关文章

【微实验】基频提取的MATLAB实现(优化版)

前情提要: 【超详细】科普:别再只会用自相关!YIN 和 PYIN 如何破解音频隐藏密码?-CSDN博客 【微实验】妈妈我的MATLAB会识别声音的基频了!-CSDN博客 今天用MATLAB把算法封装成函数,然后调用对比结果。 …

开发 npm 包【详细教程】(含发布 npm 包,版本号升级,修改包后重新发布等)

1. 给 npm 包取个【唯一】的名字! npm 包命名规范 只能包含小写字母(a-z)、数字(0-9)、连字符(-) 和 下划线(_),不能包含空格、大写字母、标点符号&#xff…

Secure 第三天作业

实验需求:1.参考以上拓扑所示,完成以下需求:1) 配置各设备 IP 地址2) 配置 ZBFW,Inside-1 和 nside-2 属于内部 Zone,Outside-1 属于外部 Zonezone security insidezone security outsidezone-p…

Linux应用层-5.计算机网络(菜鸟学习笔记)

计算机网络的核心是连接与通信,从底层的物理信号到上层的应用服务,各层协议协同工作---------------------------------------------------------------------------------------一.计算机网络分类(按范围)1•个人区域网&#xff…

[论文阅读] 人工智能 + 软件工程 | 大型语言模型对决传统方法:多语言漏洞修复能力大比拼

大型语言模型对决传统方法:多语言漏洞修复能力大比拼 论文阅读:On the Evaluation of Large Language Models in Multilingual Vulnerability RepairarXiv:2508.03470 On the Evaluation of Large Language Models in Multilingual Vulnerability Repair…

计算机网络2-3:传输方式

目录 串行传输和并行传输 同步传输和异步传输 单工、半双工以及全双工通信 总结 串行传输和并行传输 并行传输的优点是速度为串行传输的n倍,但也存在一个严重的缺点即成本高 同步传输和异步传输 单工、半双工以及全双工通信 总结

文档生成PPT软件哪个好?深度测评8款word转ppt生成工具

在日常办公与教学场景中,如何高效地将Word文档内容转化为专业PPT,一直是职场人士、教育工作者及内容创作者的共同痛点。随着AI技术的普及,一键式转换工具应运而生,它们不仅能精准识别Word中的标题与段落结构,还能自动套…

Azimutt:一款免费开源的多功能数据库工具

Azimutt 是一款支持数据库设计、表结构探索与分析、数据查询以及数据库文档生成功能的全栈工具。 Azimutt 是一个免费开源的项目,源代码托管在 GitHub: https://github.com/azimuttapp/azimutt 功能特性 多数据库支持:包括主流数据库 MySQ…

智算赋能:移动云助力“世界一流数据强港”建设之路

2024年5月,某创新产业园区智算中心正式揭牌成立。台下响起的掌声不仅是对一个项目的祝贺,更是客户对未来的期许—— 推动产业结构优化升级,领跑数字经济转型发展。5家500强企业、8家上市企业、17家独角兽企业……该创新产业园区在成为“世界一…

达梦自定义存储过程实现获取表完整的ddl语句

--导出表的ddl CREATE OR REPLACE PROCEDURE show_create_table( db IN varchar(255), tb IN varchar(255)) ASsql1 text;ret text : ;cmt text :;sql2 text :; BEGINFOR WSX IN (select TABLEDEF(db,tb) as ddl from dual) LOOPret: ret||WSX.DDL;END LOOP;ret : ret||chr(10…

【ARM】keil提示UVISION: Error: Encountered an improper argument

1、 文档目标 解决MDK退出debug模式后,提示UVISION: Error: Encountered an improper argument。 2、 问题场景 在退出Debug模式的时候,弹出提示窗口,提示:UVISION: Error: Encountered an improper argument。(如图…

【2025最新版】PDF24 Creator,PDF编辑,合并分割,格式转换全能工具箱,本地离线版本,完全免费!

软件介绍(文末获取)这款软件于1999年开发,至今已经有26年了,这26年里它都完全免费!简洁的操作界面,让用户轻松上手,高效完成 PDF 文件的处理,方便又实用。这次给大家带来的是一个本地…

如何使用VLLM进行openai/gpt-oss系列推理与支持工具调用

OpenAI时隔6年再次推出开源模型gpt-oss系列,本次gpt-oss系列包含两个模型gpt-oss-120b与gpt-oss-20b。由于模型原生支持一种新的量化技术MXFP4,所以模型的部署所需的显存也显著的降低。openai/gpt-oss-20b 只需要大概16GB的显存openai/gpt-oss-120b 需要…

SVN 查看历史信息

SVN 查看历史信息 引言 Subversion(简称SVN)是一个开源的版本控制系统,广泛应用于软件开发中。查看SVN的历史信息对于了解代码变更、追踪问题来源以及理解项目发展历程具有重要意义。本文将详细介绍如何在SVN中查看历史信息。 SVN历史信息概述…

vue+flask山西非遗文化遗产图谱可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处!编号:F068 项目介绍: 本系统主要实现了以下功能: 非遗项目知识图谱可视化 非遗项目可视化关键词分析 …

Jetson NX Python环境搭建:使用APT轻松安装NumPy, scikit-learn, OpenCV

引言 在NVIDIA Jetson NX等ARM架构的嵌入式AI板子上搭建Python开发环境,特别是安装像NumPy、OpenCV这样包含C/C底层代码的科学计算库时,经常会遇到编译失败、耗时过长或依赖冲突等问题。这些问题尤其在通过pip从源代码编译安装时更为突出,例如…

Spring Boot项目中线程池的全面教程

一、线程池基础概念与重要性1.1 为什么需要线程池在Spring Boot应用中,线程池是一种至关重要的并发编程工具,它通过​​复用线程资源​​显著提升系统性能。主要优势包括:​​减少开销​​:避免频繁创建和销毁线程带来的性能损耗​…

机器学习第八课之K-means聚类算法

目录 简介 一、K-means 的核心思想 二、K-means 聚类的工作流程 1. 确定聚类数量 K 2.初始化 K 个簇中心 3.簇分配:将数据点分配到最近的簇 4.更新簇中心:重新计算每个簇的中心 5.判断是否收敛 6.输出聚类结果 三、聚类效果评价方式 四、k-…

【P21】OpenCV Python——RGB和BGR,HSV和HSL颜色空间,及VScode中报错问题解决

P21 1 RGB和BGR2 HSV和HSL,YUV2.1 HSV2.1. 色调H2.1.2 饱和度S2.1.3 明度V2.2 HSL2.3 YUV3 颜色空间转换实战4 VScode中报错问题5 Windows 下 VScode 路径格式(VScode很强大,路径格式写法自由多样)RGB/BGR人眼识别的颜色 &#xf…

.NET 应用程序 Linux下守护进程脚本编写

下面的脚本是生产可用,可靠的sh脚本,用于监控 .NET 应用程序并自动重启。假如你打包发布到Linux的程序名称为MyAspDemo;推荐打包模式为框架依赖:需要在Linux上安装对应的donet版本;1.在Linux下新建一个文件&#xff0c…