对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
。
[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
。