神经网络 – 卷积神经网络:每个滤波器将覆盖多少像素?

如何计算网络中每个过滤器所覆盖的区域(原始图像中)?

例如
可以说图像的大小是WxW像素.
我使用以下网络:

layer 1 : conv :  5x5
layer 2 : pool :  3x3
layer 3 : conv :  5x5
.....
layer N : conv :  5x5

我想计算每个滤镜覆盖原始图像中的区域.

例如图层1中的滤镜将覆盖原始图像中的5×5像素.

最佳答案 类似的问题是,每次激活会覆盖多少像素?这与输入图像的大小基本相同,以便在图层中产生一次激活?

假设一个层的过滤器大小和步幅是k和s,输入的大小是x * x,我们有(((x-k1 1)/ s1-k2 1)/ s2 … / sn)= 1 ,x可以很容易地解决.

原始问题等同于输入图像必须有多大才能在一个层中产生一次激活,而不考虑最后一层的步幅?

所以答案是x / sn,它应该由以下伪代码计算

x = layer[n].k
from i = n-1 to 1
   x = x*layer[i].s + layer[i].k - 1

然后像素的总量是x * x.

在您的示例中,第一层的sum_1d为5,第二层为5 * 1 3-1 = 7,第三层为5 * 3 2 4 = 21(我假设池化层不重叠, S = 3)..

您可以通过反向验证这一点,比如输入是21 * 21,在第一层之后是17 * 17,汇集后是(17-2)/ 3 = 5(实际上是16 * 16和15 * 15将给出相同的结果),它恰好适合第三层中的一个过滤器.

点赞