卷积神经网络CNN动态演示和输出特征图计算公式

目录

一、卷积运算

1、卷积(Convolution)

2、填充(Padding)

(1)Valid Padding

(2)Same Padding

3、步长

4、卷积核大小为什么一般为奇数×奇数?

5、卷积核kernel和滤波器fliter的区别

二、卷积运算公式

1、经过卷积层输出的图片尺寸

2、卷积层中计算输入通道高度

3、经过池化层的特征图尺寸

4、经过全连接层的输出向量尺寸

5、特别说明


为了方便查看,搬运一个比较直观的CNN卷积过程动图:https://zhuanlan.zhihu.com/p/77471866

在线latex公式编辑器:在线LaTeX公式编辑器-编辑器

一、卷积运算

1、卷积(Convolution

左侧的image是输入数据,右侧的权重矩阵(也就是卷积核kernel)逐步在二维输入数据上进行“扫描”,卷积核按照“步长”进行滑动的同时,计算权重矩阵和扫描得到的数据矩阵的乘积,然后结果相加得到一个输出像素的值。输出的像素值最后组成一个输出矩阵。

2、填充(Padding)

上述运算过程中,输入图像和卷积核进行卷积后得到的二维矩阵比原有规模较小,此时输入图像的边缘处只检测了部分像素点,丢失了图片边缘的部分信息。

为了保证输入和输出的大小保持一致,可以在进行卷积操作之前,对输入矩阵进行边界填充(Padding),也就是在矩阵的边缘填充“0”。

这样填充后,当卷积核扫描输入数据时,能延伸到边缘以外的伪像素,从而使输入和输出的大小相同。

常用的两种padding方法如下。

(1)Valid Padding

  • 定义:Valid padding,也称为“无填充”(No Padding),在这种情况下,卷积核只在输入特征图的边界内进行滑动,不进行任何边缘填充。
  • 特点:由于没有添加额外的像素,输出特征图的尺寸会小于输入特征图的尺寸。具体来说,如果输入特征图的大小为 𝑊×𝐻,卷积核(或滤波器)的大小为 𝐾𝑤×𝐾ℎ,并且步长(Stride)为1,那么输出特征图的大小将是 (𝑊−𝐾𝑤+1)×(𝐻−𝐾ℎ+1)。
  • 应用:Valid padding通常用于当需要减小特征图尺寸,或者在网络的中间层中,不需要保持特征图的原始尺寸。

(2)Same Padding

  • 定义:Same padding,也称为“全填充”(Full Padding),在这种情况下,会在输入特征图的边缘添加一定数量的零值(即填充),使得卷积核可以覆盖到边缘,并且输出特征图的尺寸与输入特征图的尺寸相同。
  • 特点:为了实现这一点,通常会在输入特征图的每一边添加 ⌊(𝐾𝑤−1)/2⌋个填充(对于宽度)和 ⌊(𝐾ℎ−1)/2⌋个填充(对于高度),其中 ⌊𝑥⌋表示不大于 𝑥的最大整数。如果卷积核大小是奇数,则填充的数量会略有不同。
  • 应用:Same padding通常用于网络的第一层,或者任何需要保持特征图尺寸不变的层,例如在某些风格迁移或图像分割任务中。

3、步长

滑动卷积核时,会先从输入的左上角开始,每次向左滑动一列或者向下滑动一行计算输出,将每次滑动的行数和列数称为Stride,在之前的图片中,Stride=1;在下图中,Stride=2。

卷积过程中,有时需要通过padding来避免信息损失,有时也要在卷积时通过设置的步长(Stride)来压缩一部分信息,或者使输出的尺寸小于输入的尺寸。

卷积核为3×3,步长为2,padding为1

Stride的作用:是成倍缩小尺寸,而这个参数的值就是缩小的具体倍数,比如步幅为2,输出就是输入的1/2;步幅为3,输出就是输入的1/3。以此类推。

4、卷积核大小为什么一般为奇数×奇数?

  1. 中心对称性:奇数尺寸的卷积核具有中心对称性,即卷积核的中心位于其几何中心。这使得卷积核在应用到输入特征图上时,可以围绕一个中心点进行操作,这在某些情况下有助于增强特征提取的对称性。

  2. 更容易padding:在卷积时,有时候需要卷积前后的尺寸不变。这时候就需要用到padding。假设图像的大小,也就是被卷积对象的大小为n*n,卷积核大小为k*k,padding的幅度设为(k-1)/2时,卷积后的输出就为(n-k+2*((k-1)/2))/1+1=n,即卷积输出为n*n,保证了卷积前后尺寸不变。但是如果k是偶数的话,(k-1)/2就不是整数了。

  3. 减少参数数量:相比于偶数尺寸的卷积核,奇数尺寸的卷积核(如3x3)可以减少参数数量。例如,一个3x3的卷积核有9个参数,而一个4x4的卷积核有16个参数。使用更小的卷积核可以在保持有效性的同时减少模型的复杂度。

  4. 计算效率:奇数尺寸的卷积核在处理边界像素时可以更高效。当卷积核是奇数尺寸时,其在输入特征图的边缘位置不需要额外的填充,因为卷积核的中心可以正好对齐到边缘像素上。这可以减少边界处的填充量,从而减少计算量。

  5. 特征提取:奇数尺寸的卷积核可以更好地捕捉局部特征。由于卷积核的中心位于中心位置,它可以更直接地响应输入特征图中的局部变化,这对于提取图像中的边缘、纹理等特征是有益的。

5、卷积核kernel和滤波器fliter的区别

当只有一个通道的时候,卷积核就相当于fliter,两者的概念可以互换。

如果有多个通道,每个fliter实际上是卷积核的一个集合。在当前层,每个通道都对应一个卷积核,且卷积核时唯一的。

多通道卷积的计算过程:将矩阵和滤波器对应的每个通道进行卷积运算,最后将通道的对应结果进行相加,形成一个单通道输出,加上偏置项后,就得到一个最终的单通道输出。然后根据滤波器的个数,确定输出通道数。

其中需要注意:

某一层滤波器的通道数 = 上一层特征图的通道数。

某一层输出特征图的通道数 = 当前层滤波器的个数。

二、卷积运算公式

输入 x:[batch, height, width, in_channel]      四个维度

权重 w:[height, width, in_channel, out_channel]

输出 y:[batch, height, width, out_channel]

1、经过卷积层输出的图片尺寸

输入图片的尺寸:一般用 n×n 表示输入的image大小。

卷积核的大小:一般用 k×k 表示卷积核的大小。

填充(Padding):一般用 p 来表示填充大小。

步长(Stride):一般用 s 来表示步长大小。输出图片的尺寸:一般用 o 来表示。b_{ih}=(b_{oh}-1)*stride-padding*2+k可以求得 o ,计算公式如下:

o=\left \lfloor \frac{n+2p-k}{s} \right \rfloor +1

其中"⌊ ⌋"是向下取整符号,用于结果不是整数时进行向下取整。

其中输出规模的大小可以区分为高度和宽度,都可以用上述公式进行计算。

2、卷积层中计算输入通道高度

b_{ih}=(b_{oh}-1)*stride-padding*2+k

3、经过池化层的特征图尺寸

o=\frac{n-k}{stride}-1

当计算出来不是整数的时候,就要向上取整。

4、经过全连接层的输出向量尺寸

全连接层的输出向量长度等于该层神经元的个数。

5、特别说明

当卷积层和池化层的输出特征图尺寸计算时,可能出现结果不是整数的情况,此时卷积层向下取整,池化层向上取整。

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

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

相关文章

笔记88:LeetCode_134_加油站

前言: 前言1:这个题的题目条件给的不太严谨,题目描述中说“如果存在解,则保证它是唯一的”,通过我的实践,我发现这句话的意思其实是本题的所有样例只有两种情况,无解/有唯一解;而不可…

迅睿 CMS 中开启【ionCube 扩展】的方法

有时候我们想要某种功能时会到迅睿 CMS 插件市场中找现有的插件,但会有些担心插件是否适合自己的需求。于是迅睿 CMS 考虑到这一层推出了【申请试用】,可以让用户申请试用 30 天,不过试用是有条件的,条件如下: php 版…

Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人

Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人,旨在提供多领域的智能对话服务。Midjourney在不同领域中有不同的定义和应用,以下是对其中两个主要领域的介绍: Midjourney官网:https://www.midjourney.com/ 一、AI绘画工…

Windows11搭建Flutter3开发环境

下载:https://docs.flutter.cn/get-started/install/windows/desktop?tabdownload 下载以后解压到C盘: 将bin目录添加到环境变量PATH: 打开终端,输入: flutter doctor执行下面的命令,同意安卓协议&am…

llama3-8b-instruct-262k微调过程的问题笔记(场景为llama论文审稿)

目录 一、环境配置 1.1、模型 1.2、微调环境 1.3、微调数据 二、发现的问题 2.1、过拟合问题 2.2、Qlora zero3 保存模型时OOM问题(已解决) 一、环境配置 1.1、模型 llama3-8b-instruct-262k (英文) 1.2、微调环境 Package Version ------------------…

开关电源AC-DC(15W 3-18V可调)

简介: 该模块使用PI的TNY268PN电源芯片制作的开关电源,实现最大功率15W 3-18V可调输出(更改反馈电阻)隔离式反激电源; 简介:该模块使用PI的TNY268PN电源芯片制作的开关电源,实现最大功率15W 3-18V可调输出(更改反馈电阻,现电路图输出5V)隔离式反激电源; 一、产品简…

【C++】详解AVL树——平衡二叉搜索树

个人主页:东洛的克莱斯韦克-CSDN博客 祝福语:愿你拥抱自由的风 目录 二叉搜索树 AVL树概述 平衡因子 旋转情况分类 左单旋 右单旋 左右双旋 右左双旋 AVL树节点设计 AVL树设计 详解单旋 左单旋 右单旋 详解双旋 左右双旋 平衡因子情况如…

ESP32 接入点灯科技实现远程控制(物联网)

文章目录 ESP32-C3MQTT协议blinker App 源码blinker 开发者Arduino 支持文档导入 blinker 库注册点灯 APPblinker WiFi 示例blinker 蓝牙示例 本示例中开发板使用的是Seeed Studio (XIAO-ESP32-C3) ESP32-C3 ESP32-C3 是 Espressif Systems 公司开发的一款单核 Wi-Fi 和蓝牙双模…

「云渲染课堂」3dmax地砖材质参数怎么让画面更加真实?

在3DMAX中,地砖材质的渲染需要细致的调整,因为不同材质的地砖在反射和折射参数上各不相同。为了使地砖材质更加逼真,以下简要说明了一些设置方法,希望对大家有所帮助! 3dmax地砖材质参数如何设置 1、打开材质编辑器&a…

性能测试--线程的监控

1.线程的状态 1.1.线程的5种状态 java的线程总共有5种状态,如下: * 新建:new 【新建之后不启用都是new】* 运行:runnable* 等待:waitting(无限期等待),timed waitting(限期等待)* 阻塞:blocked* 结束&am…

LaTex 模板 - 东北师范大学申研申博推荐信

文章目录 NENU-Letter-Template项目地址示例特性项目结构如何使用main.texletterContent.tex 如何编译方式 1 :在线编译方式 2 :本地编译 参考 NENU-Letter-Template NENU’s recommendation letter template. 东北师范大学推荐信模板 项目地址 GitHu…

网络爬虫原理及其应用

你是否想知道Google 和 Bing 等搜索引擎如何收集搜索结果中显示的所有数据。这是因为搜索引擎对其档案中的所有页面建立索引,以便它们可以根据查询返回最相关的结果。网络爬虫使搜索引擎能够处理这个过程。 本文重点介绍了网络爬虫的重要方面、网络爬虫为何重要、其…

【学习笔记】Webpack5(Ⅱ)

Webpack 3、高级篇 3.1、提升开发体验 —— SourceMap 3.2、提升打包速度 3.2.1 HotModuleReplacement 3.2.2 OneOf 3.2.3 Include / Exclude 3.2.4 Cache 3.2.5 Thread 3.3、减少代码体积 …

蓝桥杯杨辉三角

PREV-282 杨辉三角形【第十二届】【蓝桥杯省赛】【B组】 (二分查找 递推): 解析: 1.杨辉三角具有对称性: 2.杨辉三角具有一定规律 通过观察发现,第一次出现的地方一定在左部靠右的位置,所以从…

FTP协议——BFTPD安装(Linux)

1、简介 BFTPD,全称为 Brutal File Transfer Protocol Daemon,是一个用于Unix和类Unix系统的轻量级FTP服务器软件。它的设计理念是提供一个简单、快速、安全的FTP服务器解决方案,特别适用于需要低资源占用的环境。 2、步骤 环境&#xff1…

正在直播:Microsoft Copilot Studio 新增支持Copilot代理、Copilot扩展等多项功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

java连接ldap实现查询

文章目录 一、项目背景二、准备工作三、验证结果四、易错点讲解易错点1:java: 无法访问org.springframework.ldap.core.LdapTemplate易错点2:java: 无法访问org.springframework.context.ConfigurableApplicationContext易错点3:[LDAP: error…

STM32 学习——1. STM32最小系统

这是一个最小系统的测试,LED灯会进行闪烁。选用PC13口,因为STM32F103C8T6 硬件开发板中,这个端口是一个LED 1. proteus8.15 原理图 2. cubemx 新建工程 3. keil 代码 while (1){HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);HAL_Delay(100);…

WGCAT工单系统如何配置通知

WGCAT工单系统可以配置邮件通知 只要配置了邮件通知,那么一旦我们账号有新的工单需要处理,就会接受到邮件通知 除了邮件之外,还可以配置其他方式的通知,比如微信钉钉短信等方式,参考如下 https://www.wgstart.com/wgc…

机器学习(五) -- 监督学习(5) -- 线性回归1

系列文章目录及链接 上篇:机器学习(五) -- 监督学习(4) -- 集成学习方法 - 随机森林 下篇:机器学习(五) -- 监督学习(5) -- 线性回归2 前言 tips&#xff1…