Deep learning 如何改变CNN中卷积层的大小

Deep learning 如何改变CNN中卷积层的大小,deep-learning,classification,theano,convolution,Deep Learning,Classification,Theano,Convolution,我正在使用分类和深度学习。在代码中,它使用大小为(5,5)的两个卷积层和大小为(2,2)的最大池层,以及一个完全隐藏的层,如下所示: 因此,4D输出张量具有一定的形状(批量大小,nkerns[0],12,12) layer0=LeNetConvPoolLayer( rng, 输入=图层0\u输入, 图像形状=(批次大小,1,28,28), 过滤器形状=(nkerns[0],1,5,5), 池大小=(2,2) ) #构造第二个卷积池层 #过滤将图像大小减小为(12-5+1,12-5+1)=(8,8

我正在使用分类和深度学习。在代码中,它使用大小为
(5,5)
的两个卷积层和大小为
(2,2)
的最大池层,以及一个完全隐藏的层,如下所示:

因此,4D输出张量具有一定的形状(批量大小,nkerns[0],12,12) layer0=LeNetConvPoolLayer( rng, 输入=图层0\u输入, 图像形状=(批次大小,1,28,28), 过滤器形状=(nkerns[0],1,5,5), 池大小=(2,2) ) #构造第二个卷积池层 #过滤将图像大小减小为(12-5+1,12-5+1)=(8,8) #maxpooling将此进一步减少到(8/2,8/2)=(4,4) #因此,4D输出张量具有形状(批量大小,nkerns[1],4,4) layer1=LeNetConvPoolLayer( rng, 输入=图层0.0输出, 图像形状=(批次大小,nkerns[0],12,12), 过滤器形状=(nkerns[1],nkerns[0],5,5), 池大小=(2,2) ) #HiddenLayer是完全连接的,它在 #形状(批量大小、像素数)(即光栅化图像的矩阵)。 #这将生成形状矩阵(批次大小,nkerns[1]*4*4), #或(500,50*4*4)=(500,800)的默认值。 layer2\u输入=layer1.output.flatte(2) layer2=隐藏层( rng, 输入=第2层\u输入, n_in=nkerns[1]*4*4, n_out=500, 激活=T.tanh ) layer3=逻辑回归(输入=layer2.output,输入=500,输出=35)`
问题是,如果我想将卷积层的大小从
(5,5)
更改为
(3,3)
,CNN的体系结构是什么?

使用3*3过滤器2*2池28*28图像大小:

过滤将图像大小减小到
(28-3+1,28-3+1)=(26,26)

而对于CNN的第一层,合用将这一点进一步降低到
(26/2,26/2)=(13,13)
,以此类推。

如果你能自己解决这个问题,或许可以得到社区的一些帮助,你会对CNN有更丰富的了解。如果你试图找出答案,你能编辑你的问题,包括你尝试过的细节和失败的原因吗。这样,我们就可以把我们的答案引导到澄清你的理解上,而不是仅仅提供一些回答问题的模糊数字,但不能帮助你理解正在发生的事情。下一步是什么?13是奇数,然后它将是
(13-3+1)=11
。现在
11/2=?
<代码>(5或6)?您现在可以使用2*2过滤器,这样新的大小将是(13-2+1)=12,通过使用2*2池,我们得到12/2=6(6*6)图像。