ConvNet Kernel Size

8 分钟读完

今天我来说说一个很有用的公式,参考 Stanford CS231n 课程笔记。[Link]

公式参数($W,F,P,S$):

  • $W$ :输入的每个二维 feature map 大小是 $W\times W$,也就是整个 input 体积是 $W\times W\times N$, 这里 $N$ 代表 input feature map 的数量。
  • $F$ :Kernel 或 Filter 大小为 $F\times F$
  • $P$ :Padding 四周各往外延伸 $P$
  • $S$ :Kernel 或 Filter 移动的步长(stride)为 $S$

那么每个输出的二维 feature map 大小是:

(WF+2P)/S+1(W - F + 2P)/S + 1

这个值必须为整数,若为小数则说明这个 Kernel 或 Filter 不适合这个 spatial size 的 input。

大小不变

举个常见的例子,ConvNet 中用来保持 output spatial size 不变的 Kernel 或 Filter 组合:

F=3,P=1,S=1F=3, P=1, S=1

为什么说它能让输出大小和原来保持不变呢?让我们一起代入公式计算一下:
Output=(W3+21)/1+1=(W1)/1+1=WOutput =(W - 3 + 2\cdot 1)/1 + 1 = (W - 1)/1 + 1 = W

所以输出的 spatial size 仍然保持 $W$ 不变。

大小减半

F=4,P=1,S=2F=4, P=1, S=2

所以 Output=(W4+21)/2+1=(W2)/2+1=W/2Output =(W - 4 + 2\cdot 1)/2 + 1 = (W - 2)/2 + 1 = W/2

返回顶部 ↑

留下评论