Padding,Stride,Channels¶
Note
padding,stride,channels都是卷积运算的参数,有了它们我们能更好地控制卷积运算
Padding¶
观察前一节的运算我们可以注意到,边缘像素参与的卷积运算次数会比中心像素更少,这在某种程度上丢失了边缘像素的信息。
为了修正这一点,我们在input外层人为地加若干圈0,目的是让所有像素参与的运算次数一致,这就是padding。
假设我们上下各填充 ph 行,左右各填充 pw 列, 那么输出的shape:
(nh−kh+2∗ph+1)×(nw−kw+2∗pw+1)
若 kh,kw 为奇数,我们可以令 ph=kh−12,pw=kw−12 使得输入和输出的shape相同。
Stride¶
相邻subset的信息是差不多的,为了减少冗余的运算,我们可以一次跨越多个格。
stride即一次跨多少个格,假设我们一次横跨 sw 格,纵跨 sh 格,那么输出的shape:
⌊nh−kh+2∗ph+1sh⌋×⌊nw−kw+2∗pw+1sw⌋
Channels¶
每个 RGB 彩色图片的shape: 3×h×w.
在图像处理中,除了长、宽,还有通道这个维度。kernel的通道数必须和input的通道数相同,结果还是对应元素相加再相乘:
有几个kernel,输出的通道数就是几:
output的高和宽:
⌊9−3+2∗1+13⌋×⌊9−3+2∗1+13⌋=3×3