深度学习04 卷积神经网络CNN

卷积神经网络与人工神经网络关系与区别

概念

卷积神经网络(Convolutional Neural Network, CNN)是人工神经网络(Artificial Neural Network, ANN)的一种特殊形式,两者在核心思想和基础结构上存在关联,但在设计目标、网络结构和应用场景上有显著差异。

结构

卷积神经网络对比人工神经网络引入卷积层池化层等专用层,卷积层通过局部连接和权值共享提取局部特征,池化层降低数据维度

应用领域​

ANN​​:广泛用于分类、回归、预测等任务,如金融风险评估、文本分类

CNN​​:专精于计算机视觉(图像分类、目标检测)、语音识别和自然语言处理(如文本分类)等领域

图像的概念

图像的相关概念:
  • ​Height (H)​​:图像高度,单位像素
  • ​Width (W)​​:图像宽度,单位像素
  • ​Channels (C)​​:颜色通道数,单位“个”
    • ​RGB图像​​:3通道(红、绿、蓝),每个通道值范围0(黑)~255(白)
    • ​灰度图像​​:1通道(0~255)
    • ​二值图像​​:1通道(0或1)

Numpy表示:形状:(Height, Width, Channels)

PyTorch表示:形状:(Channels, Height, Width)

图像的加载

了解了图像的概念后,图像的加载就是由一个三维矩阵或者三个三维矩阵来进行表示:

矩阵的值就是像素的位置以及像素的色彩

图像加载的3个api:

imread(): 读取图片像素等信息
imshow()  根据像素等信息画图
imsave()  保存图片

CNN卷积神经网络介绍

卷积神经网络可以简单理解为包含卷积层和池化层的神经网络模型,主要用于图形方面

组成及作用

输入层,卷积层,激励层,池化层,全连接层


卷积层:提取图像特征图

        滤波器/卷积核(filter):带有共享参数的神经元,有多少滤波器就是有多少个神经元

        卷积基本计算
            根据卷积核大小对特征图进行点乘运算
            点乘运算结果=新特征图1个特征值

        

        Padding(填充)

        通过上面的卷积计算过程,最终的特征图比原始图像小很多,如果想要保持经过卷积后的图像大小不变, 可以在原图周围添加 Padding 来实现。

Padding(填充)操作是一种用于在输入特征图的边界周围添加额外像素(通常是零)。

        Stride(步长)

        Stride(步长)指的是卷积核在图像上滑动时的步伐大小,即每次卷积时卷积核在图像中向右(或向下)移动的像素数。步长直接影响卷积操作后输出特征图的尺寸,以及计算量和模型的特征提取能力。
        

        多通道卷积计算

        实际中的图像都是多个通道组成,多通道卷积计算方法如下:

  • 当输入有多个通道(Channel), 例如 RGB 三个通道, 此时要求卷积核需要拥有相同的通道数(图像有多少通道,每个卷积核就有多少通道).
  • 每个卷积核通道与对应的输入图像的各个通道进行卷积.
  • 将每个通道的卷积结果按位相加得到最终的特征图.

具体操作如下图:padding补0,步长为1,通道为3

        
         特征图大小

输出特征图的大小与以下参数息息相关:

  • size: 卷积核/过滤器大小,一般会选择为奇数,比如有 1*1, 3*35*5

  • Padding: 零填充的方式

  • Stride: 步长

那计算方法如下图所示:

  • 输入图像大小: W x W

  • 卷积核大小: F x F

  • Stride: S

  • Padding: P

  • 输出图像大小: N x N

卷积层API介绍

conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)

"""
参数说明:
in_channels: 输入通道数,RGB图片一般是3
out_channels: 输出通道,也可以理解为卷积核kernel的数量
kernel_size:卷积核的高和宽设置,一般为3,5,7...
stride:卷积核移动的步长
    整数stride:表示在所有维度上使用相同的步长 stride=2 表示在水平和垂直方向上每次移动2个像素
    元组stride: 允许在不同维度上设置不同的步长 stride=(2, 1) 表示在水平方向上步长为2,在垂直方向上步长为1
padding:在四周加入padding的数量,默认补0
    padding=0:不进行填充。
    padding=1:在每个维度上填充 1 个像素(常用于保持输出尺寸与输入相同 padding=输入形状大小-输出形状大小)。
    padding='same'(从 PyTorch 1.9+ 开始支持):让输出特征图的尺寸与输入保持一致。PyTorch会自动计算需要的填充量。stride必须等于1,不支持跨行,因为计算padding时可能出现小数
    padding=kernel_size-1:Full Padding 完全填充
"""

池化层:降维(只在H,W上降维,与神经元无关)

池化层Pooling主要目的是降低维度,从而减少计算了,减少内存消耗,并提高模型的鲁棒性

鲁棒性(Robustness),又称健壮性或稳健性,是系统在面临内部结构变化、外部环境扰动或不确定性因素时,仍能维持其核心功能稳定运行的能力

池化层的计算

有点类似卷积层计算,但没有神经元参与

最大池化(Max Pooling) :通过池化窗口进行最大池化,取窗口中的最大值作为输出

 平均池化(Avg Pooling) :取窗口内的所有值的均值作为输出

Padding(填充)

Stride(步长

 

多通道池化计算

在处理多通道输入数据时,池化层对每个输入通道分别池化,而不是像卷积层那样将各个通道的输入相加。这意味着池化层的输出和输入的通道数是相等

池化只在宽高维度上池化在通道上是不发生池化(池化前后,多少个通道还是多少个通道)

 

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

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

相关文章

vue基础之组件通信(VUE3)

文章目录 前言一、父子组件通信1.父组件向子组件通信2.子组件向父组件通信3.ref父组件直接操作子组件通信。 二、跨代通信1. 跨层级通信2.事件总线通信 总结 前言 vue3的组件通信和vue2相比在语法上会有些差距,且vue3有的通信方式也在功能上比vue2更加完善&#xf…

【RidgeUI AI+系列】中文重复统计器

中文重复统计器 文字重复统计是一个使用文本处理工具, 输入文本内容并指定最小词长度后, 就能自动高亮显示重复的词。 本教程将会借助AI实现这个应用的开发 页面脚本编写 该工具的基础流程较为清晰:用户输入一段文字后,调用提取…

代码随想录|图论|05岛屿数量(深搜DFS)

leetcode:99. 岛屿数量 题目 题目描述: 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可以假设矩阵外均…

数据结构-第二节-堆栈与队列

一、概念: 堆栈与队列也是线性表,但是: 堆栈:只能在一个端进行插入删除,此端称为栈顶。(特点:后来居上) 队列:在一端进行插入(队尾)&#xff0…

HarmonyNext动画大全02-显式动画

HarmonyOS NEXT显式动画详解 1. 核心接口 显式动画通过animateTo接口实现,主要特点包括: 触发方式:需主动调用接口触发动画 参数配置 : animateTo({duration: 1000, // 动画时长(ms)curve: Curve.Ease, // 动画曲线delay: 200…

芯谷科技--高压降压型 DC-DC 转换器D7005

在当今电子设备日益复杂且对电源性能要求极高的背景下,一款高效、稳定的电源管理芯片至关重要。 D7005凭借其卓越的性能和广泛的应用适配性,成为众多工程师在设计电源方案时的优选。 产品简介 D7005 是一款高效、高压降压型 DC-DC 转换器,具…

MySQL的GTID详解

GTID(Global Transaction Identifier,全局事务标识符)是MySQL 5.6及以上版本引入的重要特性,用于在主从复制环境中唯一标识每个事务,简化复制管理、故障转移和数据一致性维护。以下从多维度详细介绍GTID: …

专题:2025中国游戏科技发展研究报告|附130+份报告PDF、原数据表汇总下载

原文链接:https://tecdat.cn/?p42756 本报告汇总解读基于艾瑞咨询《2025中国游戏科技发展白皮书》、伽马数据《2025年1-3月中国游戏产业季度报告》、嘉世咨询《2025中国单机游戏市场现状报告》等多份行业研报数据。当《黑神话:悟空》以虚幻引擎5复刻东…

【数据挖掘】数据挖掘综合案例—银行精准营销

要求: 1、根据相关的信息预测通过电话推销,用户是否会在银行进行存款 2、数据bank.csv,约4520条数据,17个属性值 提示: 17个属性,分别是年龄,工作类型,婚姻状况,受教育…

postgresql查看锁的sql语句

发现一个查看postgresql锁比较好的sql语句,参考链接地址如下 链接地址 查看锁等待sql witht_wait as(select a.mode,a.locktype,a.database,a.relation,a.page,a.tuple,a.classid,a.granted,a.objid,a.objsubid,a.pid,a.virtualtransaction,a.virtualxid,a.trans…

JSON 格式详解

JSON 格式详解 随着互联网的发展和各种 Web 应用程序的普及,数据交换已经成为了我们日常开发中的重要环节。而在各种数据交换格式中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁、易于阅…

原型设计Axure RP网盘资源下载与安装教程共享

对于初学者来说,我们熟悉一下其定义:‌Axure RP是一款常用的快速原型设计工具‌,主要用于创建应用软件或Web网站的线框图、流程图、原型和规格说明文档,广泛应用于产品经理、UI/UX设计师等专业领域。‌‌ 主要用户群体&#xff1…

iframe嵌套 redirect中转页面 route跳转

需求是项目A要使用iframe内嵌项目B的页面, 由于需要嵌套的页面很多,每个页面路径和参数又各不相同, 所以我们在项目B里做了一个中转页面,这样就能自己掌控项目A传递过来的东西了; routes.js 增加一个菜单:…

IP数据报 封装成 MAC帧 ( 目的MAC地址6B 源MAC地址6B 类型2B 数据部分 FCS校验和4B )

将 IP 数据报(Internet Protocol Datagram)封装成 MAC 帧 需要在数据链路层添加适当的头部信息,以便在局域网内进行传输。这个过程涉及将网络层(IP 层)的数据通过数据链路层(MAC 层)封装成适合物…

Note2.4 机器学习:Batch Normalization Introduction

Batch Normalization(批标准化,BN)通过标准化数据的操作,使得损失函数的优化地形(optimization landscape)更加平滑,从而达到更好地训练效果。BN常用于卷积神经网络(CNN)…

IDEA在AI时代的智能编程实践:从工蜂到通义灵码的效能跃迁‌‌

引言‌ 在腾讯云工作期间,我曾使用‌工蜂的AI代码补全功能,结合IntelliJ IDEA(以下简称IDEA)极大提升了开发效率。如今离开腾讯云,面对外部开发环境,如何继续利用AI提升编码效率?本文将系统梳理…

MySQL 慢查询日志详解

慢查询日志(Slow Query Log)是 MySQL 提供的一种核心性能优化工具,用于记录执行时间超过指定阈值的 SQL 语句。通过分析这些日志,可以定位数据库性能瓶颈,优化低效查询,提升系统整体效率。 一、慢查询日志的…

UV安装Python指南总结

UV安装Python指南总结 UV是一个Python包管理工具,它可以帮助我们安装和管理Python版本。以下是关于UV安装Python的主要功能和用法总结。 基本使用 安装最新版Python uv python install注意:UV使用Astral的python-build-standalone项目提供的Python发行版,而不是…

运维基础-MYSQL数据库-笔记

序 欠10年前自己的一份笔记,献给今后的自己。 数据库介绍 数据的时代 涉及的数据量大数据不随程序的结束而消失数据被多个应用程序共享大数据 数据库的发展史 萌芽阶段:文件系统 使用磁盘文件来存储数据初级阶段:第一代数据库 出现了网状…

从GPTs到Real智能体:目前常见的几种创建智能体方式

文章目录 智能体的三个发展阶段低阶智能体(面向过程) VS 高阶智能体(面向目标)主流智能体创建平台实践基础型平台cherry-studio豆包讯飞星火腾讯元器 高阶智能体开发体系cline开发套件Coze平台Dify开源框架Manus突破性方案 技术演进趋势总结 智能体的三个发展阶段 当前智能体技…