【基础原理】卷积计算公式(n-k+2p)/s+1的理解

本文详细解释了一维卷积计算中,如何通过考虑padding和stride影响特征图的尺寸,以及如何正确计算输出数量,特别是在stride为2时的特殊情况。
摘要由CSDN通过智能技术生成

对于卷积计算问题,我们可以简化一下,只考虑一个维度上的计算,毕竟特征图算的时候,无非尺寸就是平方倍关系。
首先,定义一个1维向量,长度是n+1,元素索引分别是0, 1, 2, ……n-1, n。
定义一个1维卷积核,kernel=2,可以知道,卷积核每访问一次,就会得到1个位置的输出。
如何知道最后一共有多少个输出呢,看卷积核最后出现的位置就行,可以知道最后一次访问会出现在第(n-k)+1的位置上,因此不考虑padding的情况下,特征图的尺寸是(n-k+1)^2
在这里插入图片描述
不考虑padding和stride的情况

如果考虑padding,其实在一维看来就是前后填充padding个元素。
因为有padding个新加的元素,所以要访问的位置就多了2p个。
因此,特征图的尺寸是(n-k+1+2p)^2
在这里插入图片描述
考虑padding的情况

如果有stride,这个代表的意思就是卷积核每次要跳过stride-1个元素,很显然可以用除法来考虑这一过程。
如果stride=2,就代表每次卷积核移动要跳过2-1个元素。
这个时候要做除法,分母肯定是stride,分子不应该是去考虑最后一个元素出现的位置了,不然这样没有意义。
分子应该是去计算位置的数量,也就是可以放置卷积核的总长度,或者说是从一个位置移动到另外一个位置需要进行的总步长。
因此就是n-k+2p,而不是n-k+2p+1。
那么就得到了(n-k+2p)/s。
但是注意,(n-k+2p)/s这里代表的第一次计算意义是,卷积核第一次移动后进行计算输出,这个时候并没有考虑卷积核移动之前在初始位置的输出,为了补偿,我们就加一次输出,得到:
(n-k+2p)/s + 1

也可以从另外一个角度理解,如果不补偿这个1,也不进行padding,那么当stride=2,而n = k的时候,分子为0,得到就是0个输出,但是可知,不管有没有stride,都要进行一次卷积核计算,所以也要是1个输出。
在这里插入图片描述
完整情况

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值