6.3 填充和步幅

发布时间 2023-07-30 09:52:56作者: Ann-

填充 

当卷积核的高度和宽度大于1时,卷积操作的输出的图像尺寸会变小,特别是在连续的多层卷积后,输出变得越来越小。这样一来,原始图像的边界丢失了许多有用的信息填充是解决这个问题的一种办法,即,在输入图像的边界填充元素,通常是0. 

 

 

 

通常,如果我们添加p<sub>h</sub>行填充(大约一半在顶部,一半在底部)和p<sub>w</sub>列填充(左侧大约一半,右侧一半),则输出形状将为(nh−kh+ph+1)×(nw−kw+pw+1)这意味着输出的高度和宽度将分别增加p<sub>h</sub>和p<sub>w</sub>。请注意,这里如果上下各填充了一行,p<sub>h</sub>等于2.

 

 

在许多情况下,我们需要设置p<sub>h</sub>=k<sub>h</sub>&minus;1和<span class="math notranslate nohighlight">p<sub>w</sub>=k<sub>w</sub>&minus;1,(代入上式,输出则变成n<sub>h</sub>&times;n<sub>w</sub>)使输入和输出具有相同的高度和宽度。 这样可以在构建网络时更容易地预测每个图层的输出形状。假设<span class="math notranslate nohighlight">k<sub>h</sub>是奇数,我们将在高度的两侧填充<span class="math notranslate nohighlight">p<sub>h</sub>/2行。 如果<span class="math notranslate nohighlight">k<sub>h</sub>是偶数,则一种可能性是在输入顶部填充<span class="math notranslate nohighlight">&lceil;p<sub>h</sub>/2&rceil;行,在底部填充<span class="math notranslate nohighlight">&lfloor;p<sub>h</sub>/2&rfloor;行。同理,我们填充宽度的两侧。举个例子:如果卷积核是3*3的,就填充2行2列,分别在上下各填充1行、左右各填充1行。

 

 

步幅

在前面的例子中,我们默认每次滑动一个元素。 但是,有时候为了高效计算或是缩减采样次数,卷积窗口可以跳过中间位置,每次滑动多个元素。我们将每次滑动元素的数量称为步幅(stride)。