参考论文:Very Deep Convolutional Networks for Large-Scale Image Recognition

结构组成

论文中提供的6种网络配置:
VGG网络结构详解-LMLPHP
整个网络有5个vgg-block块和5个maxpool层逐个相连,然后进入FC层,直到最后1000个softmax输出。多种VGG网络设计都很统一,都有相同的224×224×3的input层+5个maxpool层+3层fc全连接层,区别在于中间的Vgg-block块的设计不同。

以上图D列的vgg16为例:

input:

224×224×3 三通道(RGB)的图像;

vgg-block:

输入224×224×3,经过64个filter(kernelsize=(3,3,3)),stride = 1,padding=same后,得224×224×64;

Max-pooling:

输入224×224×64,经过pool size=2,stride=2后,得112×112×64;

vgg-block:

输入112×112×64,经128个filter(kernelsize=(3,3,64)),得到112×112×128;

Max-pooling:

输入112×112×128,经pool size = 2,stride = 2后,得56×56×128;

vgg-block

输入56×56×128,经过256个filter(kernelsize=(3,3,128))后,得56×56×256;

Max-pooling

输入56×56×256,经pool size = 2,stride = 2后,得28×28×256;

vgg-block:

输入28×28×256,经过512个filter(kernelsize=(3,3,256))后,得28×28×512;

Max-pooling

输入28×28×512,经pool size = 2,stride = 2后,得14×14×512;

vgg-block:

输入14×14×256,经过512个filter(kernelsize=(3,3,512))后,得14×14×512;

Max-pooling

输入14×14×512,经pool size = 2,stride = 2后,得7×7×512,展平(Flattern)得25088个参数;

Dense

输入(25088,),经过4096个神经元,得(4096,);

Dense

输入(4096,),经过4096个神经元,得(4096,);

Dense

输入(4096,),经过1000个神经元,得(1000,)。

其中前两层全连接层在使用relu后还使用了Dropout(rate=0.5)对神经元随机失活,最后一层全连接层用softmax输出1000个分类。

特点

论文提出,通过堆叠2个 3*3 的卷积核来代替 5*5 的卷积核;堆叠3个 3*3 的卷积核来代替 7*7 的卷积核。虽然用了小的卷积核来替换大的卷积核,但并不会影响感受野,即感受野是相同的,但减少了参数。
12-09 06:40