CNN卷积核计算原理

一、单通道卷积

以单通道卷积为例,输入为(1,5,5),分别表示1个通道,宽为5,高为5。假设卷积核大小为3x3,padding=0,stride=1。

在这里插入图片描述
相应的卷积核不断的在图像上进行遍历,最后得到3x3的卷积结果,结果如下:
在这里插入图片描述

二、多通道卷积

以彩色图像为例,包含三个通道,分别表示RGB三原色的像素值,输入为(3,5,5),分别表示3个通道,每个通道的宽为5,高为5。假设卷积核只有1个,卷积核通道为3,每个通道的卷积核大小仍为3x3,padding=0,stride=1。

卷积过程如下,每一个通道的像素值与对应的卷积核通道的数值进行卷积,因此每一个通道会对应一个输出卷积结果,三个卷积结果对应位置累加求和,得到最终的卷积结果(这里卷积输出结果通道只有1个,因为卷积核只有1个。

可以这么理解:最终得到的卷积结果是原始图像各个通道上的综合信息结果。
在这里插入图片描述

上述过程中,每一个卷积核的通道数量,必须要求与输入通道数量一致,因为要对每一个通道的像素值要进行卷积运算,所以每一个卷积核的通道数量必须要与输入通道数量保持一致。

在这里插入图片描述

三、多核卷积

下图为双核卷积的效果。
在这里插入图片描述

三、卷积核输出特征大小计算

若图像为正方形:设输入图像尺寸为WxW,卷积核尺寸为FxF,步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为NxN:
在这里插入图片描述
若图像为矩形:设输入图像尺寸为WxH,卷积核的尺寸为FxF,步幅为S,图像深度(通道数)为C,Padding使用P,则卷积后输出图像大小:
在这里插入图片描述
注意:Padding的作用用于解决图像边缘信息损失的问题。
在这里插入图片描述
如same:(same模式只有步长为1时,输入和输出的尺度才相同)
输入特征图为5x5,卷积核为3x3,外加padding 为1,则其输出尺寸为:
在这里插入图片描述

池化操作:
设输入图像尺寸为WxH,其中W:图像宽,H:图像高,D:图像深度(通道数),卷积核的尺寸为FxF,S:步长。池化后输出图像大小:
在这里插入图片描述
当进行池化操作时,步长S就等于池化核的尺寸,如输入为24x24,池化核为4x4,则输出为:
在这里插入图片描述
若除不尽,则取较小的数,如池化核为7x7,则输出为:
在这里插入图片描述
不是用四舍五入,就是取最小的整数,即使为3.9,也是取3。
池化的作用:
1.特征不变形:池化操作是模型更加关注是否存在某些特征而不是特征具体的位置。
2.特征降维:池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。
3.在一定程度上防止过拟合,更方便优化。
空洞卷积(也称扩张卷积,膨胀卷积)–dilated convolution

在这里插入图片描述
其中 d为空洞卷积的空洞率(正常的卷积d=1),p为padding,k为kernel size。
下面的空洞卷积核是d=2,k=2的空洞卷积卷积核。

当d=2,k=2时,-d(k-1)-1 = -3,即相当于 一个k=3的正常卷积核。下图的正好是3x3的。
在这里插入图片描述

更多基础知识见网址:https://cs231n.github.io/convolutional-networks/#conv

  • 15
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值