【卷积核的大小一般为奇数*奇数】 1*1,3*3,5*5,7*7都是最常见的。这是为什么呢?为什么没有偶数*偶数?

简介: 【卷积核的大小一般为奇数*奇数】 1*1,3*3,5*5,7*7都是最常见的。这是为什么呢?为什么没有偶数*偶数?

【卷积核的大小一般为奇数奇数】 11,33,55,77都是最常见的。这是为什么呢?为什么没有偶数偶数?



(1)更容易padding


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


(2)更容易找到卷积锚点


在CNN中,进行卷积操作时一般会以卷积核模块的一个位置为基准进行滑动,这个基准通常就是卷积核模块的中心。若卷积核为奇数,卷积锚点很好找,自然就是卷积模块中心,但如果卷积核是偶数,这时候就没有办法确定了,让谁是锚点似乎都不怎么好。

上述例子都只包含一个输入通道。实际上,大多数输入图像都有 RGB 3个通道。


图像卷积池化后的尺寸


卷积操作

image.png

池化操作


image.png

1、卷积层(Conv Layer)的输出张量(图像)的大小 定义如下: O=输出图像的尺寸。 I=输入图像的尺寸。 K=卷积层的核尺寸 N=核数量 S=移动步长 P =填充数 输出图像尺寸的计算公式如下: 在这里插入图片描述


上述公式的 分式部分 向下取整


公式推导:画出图片,将卷积核顶在图片的最左上角,从卷积核的右边缘开始考虑。

卷积核的右边缘位于第K个位置,还剩下L-K+2*P个位置可以去移动,一次向右移动S步。


所以,卷积核还能移动(I-K+2P)\S (向下取整)步。再加上本身就处在的位置,所以总共是(I-K+2P)\S(下取整)+1


如果需要保持原来的尺寸:通常S = 1,K = 2P+1, 如padding为0, kernel为1,padding为1,kernel为3


如果需要尺寸减小为原来的一半(DCGAN实现的discriminator有):通常S = 2,K = 2P+2, 如padding为0kenerl为2,padding为1,kernel为4


2、池化层(MaxPool Layer)的输出张量(图像)的大小 定义如下: O=输出图像的尺寸。 I=输入图像的尺寸。 S=移动步长 PS=池化层尺寸 输出图像尺寸的计算公式如下: 在这里插入图片描述


有了上述公式以后,我特地跑到b站看了相关视频,套入公式后,发现和我们的理解一样。


公式推导:和上面卷积层的推导十分相似,把pooling移动类比kernel移动即能明白。

如果需要尺寸减小为原来的一半: stride = 2, kernel = 2, 也即是maxpool的默认参数


相关文章
|
计算机视觉
Opencv学习笔记(十二):图片腐蚀和膨胀操作
这篇文章介绍了图像腐蚀和膨胀的原理、作用以及使用OpenCV实现这些操作的代码示例,并深入解析了开运算和闭运算的概念及其在图像形态学处理中的应用。
859 1
Opencv学习笔记(十二):图片腐蚀和膨胀操作
|
数据采集 Python
Python爬虫:设置随机 User-Agent
Python爬虫:设置随机 User-Agent
476 0
Ubuntu20.04实时显示CPU、内存、网速
Ubuntu20.04实时显示CPU、内存、网速
1616 0
Ubuntu20.04实时显示CPU、内存、网速
|
存储 传感器 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK修改图像像素格式Mono8或者Mono10(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK修改图像像素格式Mono8或者Mono10(C#)
482 0
|
数据挖掘
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
跟着 Nature 学作图 | 相关性热图(显示相关性散点图)
1004 0
|
10月前
|
机器学习/深度学习 算法 前端开发
图解前向、反向传播算法,一看就懂!
前向传播是神经网络中信息从输入层经过隐藏层传递到输出层的过程。每个神经元接收前一层的输出,通过加权求和和激活函数处理后传递给下一层,最终生成预测结果。此过程涉及输入信号、加权求和、激活函数应用等步骤。前向传播用于生成预测结果,在训练阶段与真实标签比较以计算损失函数,并在推理阶段直接生成预测值。反向传播则利用链式法则计算损失函数相对于权重的梯度,调整参数以减小误差,从而优化模型性能。两者结合实现神经网络的有效训练和预测。
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
2958 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
机器学习/深度学习 资源调度 自然语言处理
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示
18228 0
|
开发者
鸿蒙next版开发:ArkTS组件通用属性(菜单控制)
在HarmonyOS 5.0中,ArkTS引入了灵活的菜单控制属性,支持通过长按、点击或鼠标右键触发弹出式菜单,增强用户交互体验。本文详细介绍了bindMenu和bindContextMenu方法,以及MenuItem的配置属性,并提供了示例代码,帮助开发者更好地理解和使用这些功能。
702 1
|
算法 计算机视觉
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解