彻底搞懂VGGNet-16

VGGNet-16在整体上可以划分为8个部分(8段),前5段为卷积网络,后3段为全连网络。
首先创建第一段卷积网络,这一段卷积网络由2个卷积层和1个最大池化层构成,即共3层。对于两个卷积层,其卷积核的大小都是3x3,同时卷积核数量(输出通道数)也均为64,步长为1x1,padding均为1(并没有明确提出padding=1,很多地方都不明说,不知道为什么)—这也就是我们做卷积时所关心的几个参数:卷积核大小、卷积核深度、步长、padding。故,第一个卷积层的输入input的尺寸为224x224x3,输出尺寸为224x224x64;第二个卷积层的输入尺寸为224x224x64,输出尺寸为224x224x64;两个卷积之后是一个2x2的最大池化层,步长为2,故经过最大池化层之后,输出结果尺寸变为了112x112x64。若采用padding时,kernel_size=1时,padding=0;kernel_size=3时,padding=1;kernel_size=5时,padding=2,以此类推。即只有卷积核大小为奇数时,我们才padding。图示如下:
在这里插入图片描述
第二段卷积网络和第一段卷积网络的结构非常类似。两个卷积核尺寸也是3x3,但个数是128*128,s=1,p=1。最大池化层和第一段卷积的最大池化层一致。即2x2,s=2。如下图所示:
在这里插入图片描述
第三段卷积网络和前两段不同的是,卷积层数变为了3个。每个卷积层的卷积核大小依然是3x3,但每个卷积层输出通道数增长至256,s=1,p=1。最大池化层和前两段一样。如下图所示:
在这里插入图片描述
第四段卷积网络和第三段卷积网络一致。只是每个卷积层的输出通道数变为了512。如下图所示:
在这里插入图片描述
最后一段卷积网络同样是3个卷积核尺寸为3x3的卷积层加上1个最大池化层,只是不再增加卷积层的输出通道数,将其继续维持在512。如下图所示:
在这里插入图片描述
故5段卷积之后,输出尺寸为7x7x512,共有2+2+3+3+3=13层。之后,进行全连接。
第一个全连接有4096个单元。
第二个全连接有4096个单元。
第三个全连接有1000个单元。之后使用了softmax()。
再加上3个全连接层,共有13+3=16层。

猜你喜欢

转载自blog.csdn.net/qq_42278791/article/details/90604869