深度学习入门基础CNN系列——填充(padding)与步幅(stride)
1。卷积输出特征图的尺寸计算方法如下(卷积核的高和宽分别为kh和kwk_h和k_wkh和kw):HoutH−kh1WoutW−kw1HoutH−kh1WoutW−kw12。当宽和高的步幅分别为sh和sws_h和s_wsh和swHoutH2ph−khsh1WoutW2pw−kwsw1Houts。
填充(padding)

在上图中,输入图片尺寸为3×33\times33×3,输出图片尺寸为2×22\times22×2,经过一次卷积之后,图片尺寸为2×22\times22×2,经过一次卷积之后,图片尺寸变小。卷积输出特征图的尺寸计算方法如下(卷积核的高和宽分别为kh和kwk_h和k_wkh和kw):
Hout=H−kh+1Wout=W−kw+1 H_{out}=H-k_h+1\\ W_{out}=W-k_w+1 Hout=H−kh+1Wout=W−kw+1
如果输入尺寸为4,卷积核大小为3时,输出尺寸为4−3+1=24-3+1=24−3+1=2。读者可以自行检查当输入图片和卷积核为其他尺寸时,上述计算式是否成立。当卷积核尺寸大于1时,输出特征图的尺寸会小于输入图片尺寸。如果经过多次卷积,输出图片尺寸会不断减小。为了避免卷积之后图片尺寸变小,通常会在图片的外围进行填充(padding),如下图所示:
- 如图(a)所示:填充的大小为1,填充值为0。填充之后,输入图片尺寸从4×44\times44×4变成了6×66\times66×6,使用3×33\times33×3的卷积核,输出图片尺寸为4×44\times44×4。
- 如图(b)所示:填充的大小为2,填充值为0。填充之后,输入图片尺寸从4×44\times44×4变成了8×88\times88×8,使用3×33\times33×3的卷积核,输出图片尺寸为6×66\times66×6。
如果在图片高度方向,在第一行之前填充ph1p_{h1}ph1行,在最后一行之后填充ph2p_{h2}ph2行;在图片的宽度方向,在第1列之前填充pw1p_{w1}pw1列,在最后1列之后填充pw2p_{w2}pw2列;则填充之后的图片尺寸为(H+ph1+ph2)×(W+pw1+pw2)(H+p_{h1}+p_{h2})\times (W+p_{w1}+p_{w2})(H+ph1+ph2)×(W+pw1+pw2)。经过大小为kh×kwk_h\times k_wkh×kw的卷积核操作之后,输出图片的尺寸为:
Hout=H+ph1+ph2−kh+1Wout=W+pw1+pw2−kw+1 H_{out}=H+p_{h1}+p_{h2}-k_h+1\\ W_{out}=W+p_{w1}+p_{w2}-k_w+1 Hout=H+ph1+ph2−kh+1Wout=W+pw1+pw2−kw+1
在卷积计算过程中,通常会在高度或宽度的两侧采取等量填充,即ph1=ph2=ph,pw1=pw2=pwp_{h1}=p_{h2}=p_h,p_{w1}=p_{w2}=p_wph1=ph2=ph,pw1=pw2=pw,所以上面的公式就变为了:
Hout=H+2ph−kh+1Wout=W+2pw−kw+1 H_{out}=H+2p_h-k_h+1\\ W_{out}=W+2p_w-k_w+1 Hout=H+2ph−kh+1Wout=W+2pw−kw+1
卷积核大小通常使用1,3,5,7这样的奇数,如果使用的填充大小为ph=(kh−1)/2,pw=(kw−1)/2p_h=(k_h-1)/2,p_w=(k_w-1)/2ph=(kh−1)/2,pw=(kw−1)/2,则卷积之后图像尺寸不变。
例如当卷积核大小为3时,padding大小为1,卷积之后图像尺寸不变,与图(a)一样;同理,如果卷积核大小为5,padding大小为2,也能保持图像尺寸不变。
步幅(stride)

上图中卷积核每次滑动一个像素点,这是步幅为1的特殊情况,下面两张图是步幅为2的卷积过程,卷积核在图片上移动时,每次移动大小为2个像素点。

以第二张静态图为例子:
当宽和高的步幅分别为sh和sws_h和s_wsh和sw时,输出特征图尺寸的计算公式是:
Hout=H+2ph−khsh+1Wout=W+2pw−kwsw+1 H_{out}=\frac{H+2p_{h}-k_h}{s_h}+1\\ W_{out}=\frac{W+2p_w-k_w}{s_w}+1 Hout=shH+2ph−kh+1Wout=swW+2pw−kw+1
假设输入图片尺寸时H×W=100×100H\times W=100\times100H×W=100×100,卷积核大小为kh×kw=3×3k_h\times k_w=3\times3kh×kw=3×3,填充ph=pw=1p_h=p_w=1ph=pw=1,步幅为sh=sw=2s_h=s_w=2sh=sw=2,则输出特征图的尺寸为:
Hout=100+2−32+1=50Wout=100+2−32+1=50 H_{out}=\frac{100+2-3}{2}+1=50\\ W_{out}=\frac{100+2-3}{2}+1=50 Hout=2100+2−3+1=50Wout=2100+2−3+1=50
总结:
1。卷积输出特征图的尺寸计算方法如下(卷积核的高和宽分别为kh和kwk_h和k_wkh和kw): Hout=H−kh+1Wout=W−kw+1 H_{out}=H-k_h+1\\ W_{out}=W-k_w+1 Hout=H−kh+1Wout=W−kw+1
2。当宽和高的步幅分别为sh和sws_h和s_wsh和sw时,输出特征图尺寸的计算公式是:
Hout=H+2ph−khsh+1Wout=W+2pw−kwsw+1 H_{out}=\frac{H+2p_{h}-k_h}{s_h}+1\\ W_{out}=\frac{W+2p_w-k_w}{s_w}+1 Hout=shH+2ph−kh+1Wout=swW+2pw−kw+1
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)