今天我来说说一个很有用的公式,参考 Stanford CS231n 课程笔记。[Link]
公式参数():
:输入的每个二维 feature map 大小是
,也就是整个 input 体积是
, 这里
代表 input feature map 的数量。
:Kernel 或 Filter 大小为
:Padding 四周各往外延伸
:Kernel 或 Filter 移动的步长(stride)为
那么每个输出的二维 feature map 大小是:
![(W - F + 2P)/S + 1](https://i-blog.csdnimg.cn/blog_migrate/36b157fedeac67557d3b2d772eba7cb6.png)
这个值必须为整数,若为小数则说明这个 Kernel 或 Filter 不适合这个 spatial size 的 input。
举个常见的例子,ConvNet 中用来保持 output spatial size 不变的 Kernel 或 Filter 组合:
![F=3, P=1, S=1](https://i-blog.csdnimg.cn/blog_migrate/ed75ea354798b90c4ae502bac914b9f4.png%3D3%2C%20P%3D1%2C%20S%3D1%0A)
为什么说它能让输出大小和原来保持不变呢?让我们一起代入公式计算一下:
![\begin{align*} Output &=(W - 3 + 2\cdot 1)/1 + 1\\ &=(W - 1)/1 + 1\\ &=W \end{align*}](https://i-blog.csdnimg.cn/blog_migrate/e3b1850d1c8c906c2cd416b3d6608033.png)
所以输出的 spatial size 仍然保持 不变。
各位如果喜欢请帮我点个赞喔,这样会激励我贡献更多原创内容。如果你有任何疑问,请在底下留言或直接给我发邮件。
欢迎关注我的个人技术博客JellyCSC