DeepLearning-L6-VGG16

简介: DeepLearning-L6-VGG16

1. 简介


2014年,Karen Simonyan, Andrew Zisserman在《Very Deep Convolutional Networks For Large-Scale Image Recognition》提出VGG-16,夺得ILSVRC 2014的亚军。VGG代表了牛津大学的Oxford Visual Geometry Group,该小组隶属于1985年成立的Robotics Research Group,该Group研究范围包括了机器学习到移动机器人。


VGGNet的两个特点:层数更深更宽、卷积核更小。


各个级别VGG的模型结构如下表所示,其下方为不同模型的参数数量。可以看到,虽然从A到E每一级网络逐渐变深,但是网络的参数量并没有增长很多,这是因为参数量主要都消耗在最后3个全连接层了。不过训练耗时的依然是卷积层,因为这部分计算量比较大。其中D,E分别为VGG16和VGG19。

20200526170600106.png



VGGNet使用的全部都是3 × 3 的小卷积核和2 × 2 的池化核,通过不断加深网络来提升性能。其中经常出现多个完全一样的3 × 3 卷积层堆叠在一起的情况。两层3 × 3 的串联卷积结果相当于一个5 × 5的卷积,即最后一个像素会与周围5 × 5 个像素产生关联,可以说感受野大小为5 × 5 。而3层3 × 3 ×3的卷积核的串联结果则相当于1个7 × 7的卷积层。

除此之外,3个串联的3 × 3 卷积层的参数数量要比一个7x7卷积层的参数数量小得多,更少的参数意味着减少过拟合,而且更重要的是3个3 × 3 卷积层拥有比1个7 × 7 的卷积层更多的非线性变换,使得CNN对特征的学习能力更强。


2. 网络结构


VGG拥有5个卷积段,每一个卷积段有2-3个卷积层,同时每段的结尾都会连接一个最大池化层,来缩小图片尺寸。每段内的卷积核数量都一样,越靠后的段的卷积核数量越多:64 − 128 − 256 − 512 − 512


20200526170822805.png


Layer Conv1-1:


输入:224 × 224 × 3

卷积核:3 × 3 ,步长1 1,padding1 ,深度64

输出:224 × 224 × 64

Layer Conv1-2:


输入:224 × 224 × 64

卷积核:3 × 3,步长1 ,padding1,深度64

输出:224 × 224 × 64

Layer POOL-1:


输入:224 × 224 × 64

卷积核:2 × 2 ,步长2,padding0,深度64

输出:112 × 112 × 64

Layer Conv2-1:


输入:112 × 112 × 64

卷积核:3 × 3 ,步长1 ,padding1 ,深度64

输出:112 × 112 × 128

Layer Conv2-2:


输入:112 × 112 × 128

卷积核:3 × 3 ,步长1,padding1 ,深度128

输出:112 × 112 × 128

Layer POOL-2:


输入:112 × 112 × 128

卷积核:2 × 2 ,步长2,padding0 ,深度128

输出:56 × 56 × 128

Layer Conv3-1:


输入:56 × 56 × 128

卷积核:3 × 3 ,步长1 ,padding1 ,深度256

输出:56 × 56 × 256

Layer Conv3-2:


输入:56 × 56 × 256

卷积核:3 × 3 ,步长1 ,padding1 ,深度256

输出:56 × 56 × 256

Layer Conv3-3:


输入:56 × 56 × 256

卷积核:3 × 3 ,步长1,padding1,深度256

输出:56 × 56 × 256

Layer POOL-3:


输入:56 × 56 × 256

卷积核:2 × 2 ,步长2 ,padding0 ,深度256

输出:28 × 28 × 256

Layer Conv4-1:


输入:28 × 28 × 256

卷积核:3 × 3 ,步长1,padding1 ,深度512

输出:28 × 28 × 512

Layer Conv4-2:


输入:28 × 28 × 512

卷积核:3 × 3,步长1,padding1 ,深度512

输出:28 × 28 × 512

Layer Conv4-3:


输入:28 × 28 × 512

卷积核:3 × 3 ,步长1 ,padding1 ,深度512

输出:28 × 28 × 512

Layer POOL-4:


输入:28 × 28 × 512

卷积核:2 × 2 ,步长2 ,padding0 ,深度512

输出:14 × 14 × 512

Layer Conv5-1:


输入:14 × 14 × 512

卷积核:3 × 3 3,步长1 ,padding1,深度512

输出:14 × 14 × 512

Layer Conv5-2:


输入:14 × 14 × 512

卷积核:3 × 3 ,步长1 ,padding1 ,深度512

输出:14 × 14 × 512

Layer Conv5-3:


输入:14 × 14 × 512

卷积核:3 × 3 ,步长1 ,padding1 ,深度512

输出:14 × 14 × 512

Layer POOL-5:


输入:14 × 14 × 512

卷积核:2 × 2 ,步长2 ,padding0,深度512

输出:7 × 7 × 512

20200526170720760.jpg


相关文章
|
PyTorch 算法框架/工具 异构计算
Pytorch实现经典模型AlexNet模型
Pytorch实现经典模型AlexNet模型
87 0
|
机器学习/深度学习 存储 编解码
深度学习论文阅读图像分类篇(一):AlexNet《ImageNet Classification with Deep Convolutional Neural Networks》
 我们训练了一个大型深度卷积神经网络来将 ImageNet LSVRC2010 竞赛的 120 万高分辨率的图像分到 1000 不同的类别中。在测试数据上,我们得到了 top-1 37.5%和 top-5 17.0%的错误率,这个结果比目前的最好结果好很多。
269 0
|
机器学习/深度学习 PyTorch 算法框架/工具
|
算法框架/工具 计算机视觉
《ImageNetVGGNet,ResNet,Inception,and Xception with Keras》电子版地址
ImageNet:VGGNet,ResNet,Inception,and Xception with Keras
64 0
《ImageNetVGGNet,ResNet,Inception,and Xception with Keras》电子版地址
|
机器学习/深度学习
DeepLearning-L4-LeNet5
DeepLearning-L4-LeNet5
DeepLearning-L4-LeNet5
|
机器学习/深度学习 数据挖掘 计算机视觉
DeepLearning-L5-AlexNet
DeepLearning-L5-AlexNet
DeepLearning-L5-AlexNet
|
机器学习/深度学习 数据挖掘
DeepLearning-L7-GoogLeNet
DeepLearning-L7-GoogLeNet
DeepLearning-L7-GoogLeNet
|
TensorFlow 算法框架/工具 计算机视觉
TensorFlow 实现VGG16图像分类
TensorFlow 实现VGG16图像分类
TensorFlow 实现VGG16图像分类
|
机器学习/深度学习 人工智能 数据可视化
Pytorch 基于LeNet的手写数字识别
Pytorch 基于LeNet的手写数字识别
153 0
Pytorch 基于LeNet的手写数字识别