【深度学习】卷积层填充和步幅以及其大小关系

参考链接

【深度学习】:《PyTorch入门到项目实战》卷积神经网络2-2:填充(padding)和步幅(stride)

一、卷积

卷积是在深度学习中的一种重要操作,但实际上它是一种互相关操作,,首先我们来了解一下二维互相关:具体做法是对应数字相乘后相加

  Output具体的运算过程:

 而一个卷积运算的操作如下,给一个输入矩阵和一个核函数,我们将从输入特征的左上角开始与核函数求内积,然后在进行滑动窗口,求下一个内积。得到我们的输出,具体计算如下

 可以看出,通过卷积计算后,我们的原始数据特征变小了。假设输入矩阵为n\times n,核函数(Kernel)为f\times f,通常核是一个方阵形式。那么得到的输出结果为(n-f+1)\times (n-f+1)

一维和三维卷积

  1. 一维:文本,语言,时序序列
  2. 三维:视频,医学图像,气象地图

 二、卷积层的填充和步幅:控制输出大小的超参数

正如上面所说的假设输入特征为n\times n,核形状为f\times f,那么经过卷积核作用后,得到的输出形状为(n-f+1)\times (n-f+1)。可以看出,通常情况下输出特征会由于卷积核的作用而减小。而深度神经网络中,由于卷积核的作用,会导致我们的输出过早的变的很小,导致我们无法构建深层的神经网络。因此接下来介绍另外两个影响输出形状的方法,扩充(padding)和步幅(stride)

  • 有时候,输出远远小于输入,这是因为卷积核的影响,而在原始图像较小的情况下,任意丢失很多信息,这个时候我们需要使用填充解决此问题。
  • 有时,我们可能希望大幅降低图像的宽度和高度。例如,我们发现一个图像实在是太大了。这个时候使用步幅可以快速将输出变小。

1. padding

为了构建深度神经网络,你需要学会使用的一个基本的卷积操作就是padding。首先让我们来回忆一下卷积是如何计算的:

这其实有两个缺陷:

第一个是如果每一次使用一个卷积操作,我们的图像都会缩小。 例如我们从 6x6 通过一个 3x3的卷积核,做不了几次卷积,我们的图片就会变得非常小,也许它会缩小到只有1x1。

第二个缺陷是图片角落或者边际上的像素只会在输出中被使用一次 因为它只通过那个3x3的过滤器(filter)一次 然而图片中间的一个像素,会有许多3x3的过滤器(filter)在那个像素上重叠 所以相对而言 角落或者边界上的像素被使用的次数少很多,这样我们就丢失了许多图片上靠近边界的信息


所以为了同时解决上述的两个问题。我们能做的是在使用卷积操作前,对图片进行填充,通常是用0来进行填充,具体如下所示。

我们可以沿着图像边缘再填充一层像素。这样那么3×3的图像就被我们填充成了一个5×5的图像。如果你用2×2的卷积核对这个5×5的图像卷积,我们得到的输出就不是2×2,而是4×4的图像,你就得到了一个尺寸比原始图像3×3还大图像。习惯上,我们都用用0去填充,如果p是填充参数,在这个案例中,p=1,因为我们在周围都填充了一个像素点,输出也就变成了(n+2p-f+1)\times (n+2p-f+1)。所以,要是我们想要保持图像大小不变,则意味着2p-f+1=0,p=\frac{f-1}{2},在后面我们的卷积核通常会设置为奇数。

为了指定卷积操作中的padding,我们可以指定p的值。以上就是padding,下面我们讨论一下如何在卷积中设置步长。

2.步幅(stride)

卷积窗口从输入张量的左上角开始,向下、向右滑动。 在前面的例子中,我们默认每次滑动一个元素。 但是,有时候为了高效计算或是缩减采样次数,卷积窗口可以跳过中间位置,每次滑动多个元素。卷积中的步幅是另一个构建卷积神经网络的基本操作,例如,下面是一个步幅为3的情况。

 如果我们用一个f\times f的过滤器卷积一个n\times n的图像,padding为p,步幅为s,在这个例子中s=3,因为现在我们不是一次移动一个步长,而是一次移动s步,输出于是变为\left \lfloor \frac{n+2p-f}{s}+1 \right \rfloor\times \left \lfloor \frac{n+2p-f}{s}+1 \right \rfloor\left \lfloor \right \rfloor表示向下取整。

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

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

相关文章

物联网水表电子阀工作原理是怎样的?

随着科技的不断发展,物联网技术逐渐深入到我们的生活之中。作为智能家居的重要组成部分,物联网水表电子阀凭借其智能化、节能环保等优势,受到了越来越多用户的青睐。接下来,合众小编将来为大家介绍下物联网水表电子阀工作原理。 一…

助力网络安全攻防演练 | 中睿天下获国网蒙东电力数字化事业部感谢信

近日,中睿天下因积极协助和支撑国网蒙东电力数字化事业部在2023年国家网络安全专项演习期间的工作,有效保障了护网行动期间网络的安全稳定运行,因而获得了国网蒙东电力数字化事业部的高度认可,并向我司致书面表扬信,这…

SpringBoot整合Canal+RabbitMQ监听数据变更(对rabbit进行模块封装)

SpringBootCanal(监听MySQL的binlog)RabbitMQ(处理保存变更记录) 在SpringBoot中采用一种与业务代码解耦合的方式,来实现数据的变更记录,记录的内容是新数据,如果是更新操作还得有旧数据内容。 使用Canal来监听MySQL的…

React事件绑定的方式有哪些?区别?

一、是什么 在react应用中,事件名都是用小驼峰格式进行书写,例如onclick要改写成onClick 最简单的事件绑定如下: class ShowAlert extends React.Component { showAlert() { console.log("Hi"); } render() { ret…

接口测试工具的实验,Postman、Swagger、knife4j(黑马头条)

一、Postman 最常用的接口测试软件,需要注意点:在进行post请求时,需要选择JSON形式发送 输入JSON字符串,比如: {"maxBehotTime": "2021-04-19 00:19:09","minBehotTime": "2021-…

MacOS升级后命令行出现xcrun: error: invalid active developer path报错信息

在Mac上用g编译cpp文件时,出现以下(类似于工具环境问题的)报错: 解决方案:重新安装最新版的MacOS Command Line Tools xcode-select --install重新尝试编译: 编译成功(忽略这个warning&…

Leetcode—515.在每个树行中找最大值【中等】

2023每日刷题(二十三) Leetcode—515.在每个树行中找最大值 DFS实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned arra…

说说对Fiber架构的理解?解决了什么问题?

一、问题 JavaScript引擎和页面渲染引擎两个线程是互斥的,当其中一个线程执行时,另一个线程只能挂起等待 如果 JavaScript 线程长时间地占用了主线程,那么渲染层面的更新就不得不长时间地等待,界面长时间不更新,会导…

【微服务部署】五、Jenkins+Docker一键打包部署NodeJS(Vue)项目的Docker镜像步骤详解

NodeJS(Vue)项目也可以通过打包成Docker镜像的方式进行部署,原理是先将项目打包成静态页面,然后再将静态页面直接copy到Nginx镜像中运行。 一、服务器环境配置 前面说明了服务器Nginx的安装和配置,这里稍微有些不同&a…

机器学习中的关键组件

机器学习中的关键组件 数据 每个数据集由一个个样本组成,大多时候,它们遵循独立同分布。样本有时也叫作数据点或数据实例,通常每个样本由一组称为特征或协变量的属性组成。机器学习会根据这些属性进行预测,预测得到的称为标签或…

2023亚太杯数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

微信小程序使用阿里巴巴矢量图标

一,介绍 微信小程序使用图标有两种方式,一种是在线获取,一种是下载到本地使用, 第一种在线获取的有个缺点就是图标是灰色的,不能显示彩色图标,而且第一种是每次请求资源的,虽然很快&#xff0…

工业园区一般用多大规格的电表?

随着我国经济的快速发展,工业园区在各地区如雨后春笋般崛起。作为电力系统的重要组成部分,电表的选择与应用对于工业园区的稳定运行至关重要。那么,工业园区一般用的是多大规格的电表呢?下面,小编就来给大家揭秘一下&a…

基于SSM框架的管理系统-计算机毕设 附源码 23402

基于SSM框架的管理系统 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。在目前的形势下,无论是从国家到企业再到家庭,计算机都发挥着其不可替代的作用,可以说…

数据源、映射器的复用

开发环境: Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码目的:学习与总结 demo解决问题:复用球体数据源、映射器,vtkSmartPointer与std::vector、vtkNew与std::array的搭配使用…

overflow: auto滚动条跳到指定位置

点击对应模块跳转页面,滚动到对应模块,露出到可视范围 代码: scrollToCurrentCard() {// treeWrapper是包裹多个el-tree组件的父级元素,也是设置overflow:auto的元素let treeWrapper document.getElementsByClassName(treeWrapp…

调试 Mahony 滤波算法的思考 10

调试 Mahony 滤波算法的思考 1. 说在前面的2.Mahony滤波算法的核心思想3. 易懂的理解 Mahony 滤波算法的过程4. 其他的一些思考5. 民间 9轴评估板 1. 说在前面的 之前调试基于QMI8658 6轴姿态解算的时候,我对Mahony滤波的认识还比较浅薄。初次的学习和代码的移植让…

超全大厂UI库分享,可免费套用!

今天我们要给大家分享的是TDesign、Arco Design、Ant Design、Material design等6个优秀的大厂UI库,一次性打包送给大家,通通免费用。大厂UI库都是经过无数次的事件检验的,扛住了许多种使用场景和突发情况的组件资源库,是前人的经…

超声波热量表和电磁热量表有哪些区别?

随着我们能源消耗日益增长,热量计量已成为节能减排、能源管理的重要手段。热量表是用于测量热能消耗的仪表,其中超声波热量表和电磁热量表是常见的两种类型。下面,就由小编来为大家详细的介绍下超声波热量表和电磁热量表的区别,一…

C语言C位出道心法(四):文件操作

C语言C位出道心法(一):基础语法 C语言C位出道心法(二):结构体|结构体指针|链表 C语言C位出道心法(三):共用体|枚举 C语言C位出道心法(四):文件操作 一:C语言操作文件认知升维: 二:文件打开 三:文件读写操作 忙着去耍帅,后期补充完整.................................