卷积神经网络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、特别说明

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】哈希和unordered系列容器

目录 一、unordered系列关联式容器的引入 二、容器使用 2.1 unordered_map的文档说明 2.2 unordered_map的使用 2.3 unordered_set 三、底层结构 3.1 哈希概念 3.2 哈希表 3.3 哈希冲突 3.4 哈希函数 3.5 哈希冲突解决 3.5.1 闭散列 3.5.2 开散列 3.5.3 思考 四…

【微积分】CH16 integrals and vector fields听课笔记

【托马斯微积分学习日记】13.1-线积分_哔哩哔哩_bilibili 概述 16.1line integrals of scalar functions [中英双语]可视化多元微积分 - 线积分介绍_哔哩哔哩_bilibili 16.2vector fields and line integrals: work circulation and flux 向量场差不多也是描述某种…

Vitis HLS 学习笔记--控制驱动任务示例

目录 1. 简介 2. 代码解析 2.1 kernel 代码回顾 2.2 功能分析 2.3 查看综合报告 2.4 查看 Schedule Viewer 2.5 查看 Dataflow Viewer 3. Vitis IDE的关键设置 3.1 加载数据文件 3.2 设置 Flow Target 3.3 配置 fifo 深度 4. 总结 1. 简介 本文对《Vitis HLS 学习…

Android面试题之Kotlin常见集合操作技巧

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 list 创建和修改 不可变list,listOf var list listOf("a","d","f") println(list.getOrElse(3){"Unkn…

《计算机网络微课堂》2-5 信道的极限容量

本节课我们介绍信道极限容量的有关问题。 我们都知道信号在传输过程中会受到各种因素的影响,如图所示,这是一个数字信号,‍‍当它通过实际的信道后,波形会产生失真,当失真不严重时,在输出端‍‍还可根据以失…

Mysql教程(0):学习框架

1、Mysql简介 MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版,社区版完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的&#xff0…

力扣刷题---409. 最长回文串【简单】

题目描述 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。 在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。 示例 1: 输入:s “abccccdd” 输出:7 解释: 我们可以构造的最长的回文串…

Docker部署SpringBoot项目(jar包+Mysql)

部署Java项目 项目准备准备Java项目镜像准备配置网络 部署项目细节展示 项目准备 准备Java项目 hmall项目是一个maven聚合项目,使用IDEA打开hmall项目,查看项目结构如图: 我们要部署的就是其中的hm-service,其中的配置文件采用…

Java网络编程之TCP协议核心机制(三)

题外话 最近学习内容很多嗷 正题 延时应答机制 当客户端发送数据到服务器时,服务器不会立即返回ACK,而是等待一会再返回ACK 这段等待时间应用程序可能会消化掉接收缓冲区中的数据,当服务器返回ACK时,就会携带此时接收缓冲区大小的信息 当客户端下次再发送数据的时候就可以…

WebGL的室内设计软件

WebGL (Web Graphics Library) 是一个JavaScript API,它提供了一种在网页上渲染3D图形的方法,无需使用插件。利用WebGL,开发者可以创建和展示复杂的3D场景,包括室内设计。以下是开发基于WebGL的室内设计软件时可能涉及的一些关键步…

青鸟云报修系统:实现高效、便捷的维修申请处理

在日常生活和工作中,故障报修难免会遇到,售后报修服务则成为了解决问题的关键。纸质化售后报修维修申请单,作为报修流程中的重要一环,在一定程度上能够记录和追踪售后报修维修流程,但在实际操作过程中却存在着诸多弊端…

【MySQL数据库】:MySQL表的操作

目录 创建表 创建表案例 查看表结构 修改表 插入数据 新增列 删除一行数据 修改列类型 修改列名 修改表名 删除列 删除表 表操作至少会涉及如下两类SQL语句: DDL(Data Definition Language)数据定义语言:比如…

【c语言】了解指针,爱上指针(5)

了解指针,爱上指针(5) 回调函数qsort函数冒泡排序模拟实现qsort函数 回调函数 回调函数:就是一个通过函数指针调用的函数。 把函数的指针作为参数传给另一个函数,当这个指针被用来调用指向的函数时,此时被…

Vue CLI 的服务介绍与使用(2024-05-20)

1、介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 vue/cli 实现的交互式的项目脚手架。 通过 vue/cli vue/cli-service-global 实现的零配置原型开发。 一个运行时依赖 (vue/cli-service),该依赖: 可升级…

【论文阅读】使用深度学习及格子玻尔兹曼模拟对SEM图像表征粘土结构及其对储层的影响

文章目录 0、论文基本信息1、深度学习2、可运行程序—Matlab3、深度切片3、LBM模拟4、局限性 0、论文基本信息 论文标题:Characterizing clay textures and their impact on the reservoir using deep learning and Lattice-Boltzmann simulation applied to SEM i…

EI稳定检索--人文社科类会议(ICBAR 2024)

【ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024) 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 【高录用•快检索,ACM独立出版-稳定快速EI检索 | 往届均已完成EI, Scopus检索】 【见…

[less配置]vue2引入less

1、终端输入:npm install less less-loader --save-dev 2、在package.json查看是否安装less依赖 3、调用

【前端笔记】记录一个能优化Echarts Geo JSON大小的网站

前端在使用Echarts等可视化图表库会不可避免遇到的问题,渲染地图的数据太大。 而有那么一个网站能给予这个问题一个解决方案:链接在此 使用方法很简单,首先先进入网站,如果进入了会是这个页面: 接着,选择一…

[SCTF2019]babyre

打开看看还是有花指令 解除后首先pass1是解maze,好像又是三维的 x是25,也就是向下跳五层,注意是立体的 得到 passwd1: ddwwxxssxaxwwaasasyywwdd 接着往下看 有一个加密函数IDA逆向常用宏定义_lodword-CSDN博客 unsigned __int64 __fastca…

【文献阅读】ESG评级分化和企业绿色创新

ESG评级分化和企业绿色创新 摘要 (1)本研究通过实证探讨了ESG评级差异是否以及如何影响企业绿色创新。以中国上市公司为样本,我们发现ESG评级差异对企业绿色创新有积极的影响 。经过几次稳健性检查后,该结果仍然成立。 &#xff…