对theano深度学习教程中卷积层输出大小的困惑

Confused about the size of the output of convolution layer in theano deep learning tutorial

[http://deeplearning.net/tutorial/lenet.html#lenet]

在上面link它说 构造第一个卷积池化层: 过滤将图像大小减小到 (28-5+1 , 28-5+1) = (24, 24)

大小为 a 的数据与大小为 b 的过滤器的卷积给出大小为 a+b-1 的输出。所以这里数据大小为28*28,过滤器大小为5*5。所以输出大小应该是(28+5-1,28+5-1)。它给出为 (28-5+1,28-5+1)

这取决于border_mode

conv2d uses border_mode='valid' by default which means (from the scipy documentation)

The output consists only of those elements that do not rely on the zero-padding.

因此使用 border_mode='valid'(5,5) 过滤器输出将与输入大小相同减去两个像素边界,即 image_shape - filter_shape + 1,因此输入大小 (28,28) 输出将是 (24,24).

备选方案 border_mode='full' 将零填充输入,使输出形状为 image_shape + filter_shape - 1