目录
1.VGG结构
2.块结构
3.权重参数
3.特点
4.代码实现
4.1 数据集介绍
4.2 代码
4.3 实验结果
VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络。VGG是由Simonyan 和Zisserman在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。该模型参加2014年的 ImageNet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。
VGG中根据卷积核大小和卷积层数目的不同,可分为A,A-LRN,B,C,D,E共6个配置(ConvNet Configuration),其中以D,E两种配置较为常用,分别称为VGG16和VGG19。下图给出了VGG的六种结构配置:
下图 VGG六种结构配置图:
上图中,每一列对应一种结构配置。例如,图中绿色部分即指明了VGG16所采用的结构。
我们针对VGG16进行具体分析发现,VGG16共包含:
其中,卷积层和全连接层具有权重系数,因此也被称为权重层,总数目为13+3=16,这即是VGG16中16的来源。(池化层不涉及权重,因此不属于权重层,不被计数)。
VGG16整个架构图如下图所示:
从左至右,一张彩色图片输入到网络,白色框是卷积层,红色是池化,蓝色是全连接层,棕色框是预测层。预测层的作用是将全连接层输出的信息转化为相应的类别概率,而起到分类作用。
可以看到 VGG16 是13个卷积层+3个全连接层叠加而成。
网络开始输入(3,224,224)的图像数据,即一张宽224,高244的彩色RGB图片,同时补了一圈0。接着是卷积层,有64个(3,3)的卷积核,一个卷积核扫完图片,生成一个新的矩阵,64个就生成64 层。接着是补0,接着再来一次卷积。此时图像数据是64*224*224,接着是池化,小矩阵是(2,2)。按照这样池化之后,数据变成了64*112*112,矩阵的宽高由原来的224减半,变成了112。再往下,同理,只不过是卷积核个数依次变成128,256,512,而每次按照这样池化之后,矩阵都要缩小一半。13层卷积和池化之后,数据变成了 512*7*7。
观察上面第一幅图右侧,VGG16的卷积层和池化层可以划分为不同的块(Block),从前到后依次编号为block1-block5。每一个块内包含若干卷积层和一个池化层。例如:block4包含:3个卷积层,conv3-512;1个池化层,maxpool。
并且同一块内,卷积层的通道数是相同的,例如:block2中包含2个卷积层,每个卷积层用conv3-128表示,即卷积核为:3x3x3,通道数都是128;block3中包含3个卷积层,每个卷积层用conv3-256表示,即卷积核为:3x3x3,通道数都是256
下面给出按照块划分的VGG16的结构图,可以结合下图进行理解:
本文发布于:2024-01-31 22:21:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170671091531786.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |