直接举例进行说明输出图片的长和宽。ide
输入照片为:32*32*3,函数
这是用一个Filter获得的结果,即便一个activation map。(filter 总会自动扩充到和输入照片同样的depth)。3d
当咱们用6个5*5的Filter时,咱们将会获得6个分开的activation maps,如图所示:blog
获得的“新照片”的大小为:28*28*6.图片
其实,每一个卷积层以后都会跟一个相应的激活函数(activation functions):input
微观上,假设如今input为7*7,Filter尺寸为3*3,output过程以下所示:io
最终获得一个5*5的output。function
假设,input为7*7,Filter尺寸为3*3,stride(步长)为2,则output过程以下所示:map
最终获得一个3*3的output。im
注:在这个例子中stride不能为3,由于那样就越界了。
总的来讲
Output size=(N-F)/stride +1
当有填充(pad)时,例如对一个input为7*7进行pad=1填充,Filter为3*3,stride=1,会获得一个7*7的output。
Output size=(N-F+2*pad)/stride +1
注:0填充(pad)的主要目的是由于咱们在前面的图中所示的那样,一直用5*5的Filter进行卷积,会致使体积收缩的太快,不利于特征的提取。
举例说明:
在这里要注意一下1*1的卷积核,为何呢?
举例:一个56*56*64的input,用32个1*1的卷积核进行卷积(每个卷积核的尺寸为1*1*64,执行64维的点乘操做),将获得一个56*56*32的output,看到输出的depth减小了,也就是降维,那么parameters也会相应的减小。
下面介绍一下Pooling(池化)操做:
将represention变小,易于操做和控制,对每个activation map单独进行操做。
用的最多的是最大池化(MAX POOLING):
Output size=(N-F)/S +1