SSD网络的主体一种是基于VGG16,另一种是基于ResNext101。
于是今天研究了一下VGGNet。
首先是DeepLearning里面图像分类模型的发展:
LeNet-AlexNet-VGG-GoogLetNet-ResNet
以及他们的性能比较:
值得一提的是,目前的ResNet层数据说已经达到了千层,分类效果也是目前最好的网络。
但今天的主角是VGGNet。
VGG是从AlexNet改进而来的:
所做的改进:
1.加深了网络,从8层增加到19层。(VGG16是16层)。
2.卷积核更小,使用3*3的卷积核,使得模型的特征提取能力更强,而且参数的数量更少。(思考一下为什么,参考https://blog.csdn.net/wcy12341189/article/details/56281618)
3.另外,VGG在整个图片和multi-scale上训练和测试图片。
VGG的结构:
可以看到,VGG16里面都是用的3*3的卷积核。
但是VGG的问题在于,参数实在太多了,而且主要集中在后面的FC全连接层中:
例如在VGG16中,第一个全连接层FC1有4096个节点,上一层POOL2是7*7*512 = 25088个节点,则该传输需要4096*25088个权值,需要耗很大的内存。
VGG16的Keras代码:
https://blog.csdn.net/u013473520/article/details/50730620