VGGNet论文学习记录:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

按照Andrew Ng推荐的顺序,精读了第二篇深度学习的经典论文,下面记录一些文章中的关键点。


以VGG16为例, 输入是224x224x3的图像,下面是每一层的大小:
conv1_1 [32, 224, 224, 64]
conv1_2 [32, 224, 224, 64]
pool1 [32, 112, 112, 64]
conv2_1 [32, 112, 112, 128]
conv2_2 [32, 112, 112, 128]
pool2 [32, 56, 56, 128]
conv3_1 [32, 56, 56, 256]
conv3_2 [32, 56, 56, 256]
conv3_3 [32, 56, 56, 256]
pool3 [32, 28, 28, 256]
conv4_1 [32, 28, 28, 512]
conv4_2 [32, 28, 28, 512]
conv4_3 [32, 28, 28, 512]
pool4 [32, 14, 14, 512]
conv5_1 [32, 14, 14, 512]
conv5_2 [32, 14, 14, 512]
conv5_3 [32, 14, 14, 512]
pool5 [32, 7, 7, 512]
fc6 [32, 4096]
fc7 [32, 4096]
fc8 [32, 1000]

有一些关键点:
  1. 1x1的卷积的主要作用是线性变换。
  2. VGGNet中多个完全一样的3x3的卷积层堆叠,可以产生和大卷积核一样的效果但是参数量更少,但是却有更多的非线性变换,所以学习能力更强。
  3. 使用Mutlti-Scale的方法做数据增强,防止过拟合。
  4. 在预测时使用滑动窗口,并且取多尺度上的平均值作为最终预测值。

下面算一下参数数量: 
输入:224*224*3 

第一组:

conv3 - 64(卷积核的数量):kernel size:3 stride:1 pad:1 
参数: (3*3*3)*64 =1728 
conv3 - 64:kernel size:3 stride:1 pad:1 
参数: (3*3*64)*64 =36864 
pool2 kernel size:2 stride:2 pad:0 
参数: 0 

第二组:
conv3-128:kernel size:3 stride:1 pad:1 
参数: (3*3*64)*128 =73728 
conv3-128:kernel size:3 stride:1 pad:1 
参数: (3*3*128)*128 =147456 
pool2: kernel size:2 stride:2 pad:0 
参数:0 

第三组:
conv3-256: kernel size:3 stride:1 pad:1 
参数:(3*3*128)*256=294912 

conv3-256: kernel size:3 stride:1 pad:1 

参数:(3*3*256)*256=589824 

conv3-256: kernel size:3 stride:1 pad:1 

参数:(3*3*256)*256=589824 

pool2: kernel size:2 stride:2 pad:0 

参数:0 

第四组:
conv3-512:kernel size:3 stride:1 pad:1 
参数:(3*3*256)*512 = 1179648 

conv3-512:kernel size:3 stride:1 pad:1 

参数:(3*3*512)*512 = 2359296 

conv3-512:kernel size:3 stride:1 pad:1 

参数:(3*3*512)*512 = 2359296 

pool2: kernel size:2 stride:2 pad:0 

参数: 0 

第五组:
conv3-512:kernel size:3 stride:1 pad:1 
参数:(3*3*512)*512 = 2359296 

conv3-512:kernel size:3 stride:1 pad:1 

参数:(3*3*512)*512 = 2359296 

conv3-512:kernel size:3 stride:1 pad:1 

参数:(3*3*512)*512 = 2359296 

pool2:kernel size:2 stride:2 pad:0 

参数:0 

第六组:
FC: 4096 neurons 
参数:7*7*512*4096 = 102760448 

FC: 4096 neurons 

参数:4096*4096 = 16777216 

FC:1000 neurons 

参数:4096*1000=4096000


猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/80678854