深度学习——VGG16模型详解

这篇具有很好参考价值的文章主要介绍了深度学习——VGG16模型详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、网络结构

VGG16模型很好的适用于分类和定位任务,其名称来自牛津大学几何组(Visual Geometry Group)的缩写。

根据卷积核的大小核卷积层数,VGG共有6种配置,分别为A、A-LRN、B、C、D、E,其中D和E两种是最为常用的VGG16和VGG19。

介绍结构图:

  • conv3-64 :是指第三层卷积后维度变成64,同样地,conv3-128指的是第三层卷积后维度变成128;
  • input(224x224 RGB image) :指的是输入图片大小为224244的彩色图像,通道为3,即224224*3;
  • maxpool :是指最大池化,在vgg16中,pooling采用的是2*2的最大池化方法(如果不懂最大池化,下面有解释);
  • FC-4096 :指的是全连接层中有4096个节点,同样地,FC-1000为该层全连接层有1000个节点;
  • padding:指的是对矩阵在外边填充n圈,padding=1即填充1圈,5X5大小的矩阵,填充一圈后变成7X7大小;
  • 最后补充,vgg16每层卷积的滑动步长stride=1,padding=1,卷积核大小为333;
     

vgg16,动手学深度学习,深度学习,人工智能,cnn,神经网络

如上图VGG16的网络结构为,VGG由5层卷积层、3层全连接层、softmax输出层构成,层与层之间使用max-pooling(最大化池)分开,所有隐层的激活单元都采用ReLU函数。具体信息如下:

  • 卷积-卷积-池化-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-全连接-全连接-全连接
  •  通道数分别为64,128,512,512,512,4096,4096,1000。卷积层通道数翻倍,直到512时不再增加。通道数的增加,使更多的信息被提取出来。全连接的4096是经验值,当然也可以是别的数,但是不要小于最后的类别。1000表示要分类的类别数。
  • 用池化层作为分界,VGG16共有6个块结构,每个块结构中的通道数相同。因为卷积层和全连接层都有权重系数,也被称为权重层,其中卷积层13层,全连接3层,池化层不涉及权重。所以共有13+3=16层。
  • 对于VGG16卷积神经网络而言,其13层卷积层和5层池化层负责进行特征的提取,最后的3层全连接层负责完成分类任务。

2、VGG16的卷积核

  • VGG使用多个较小卷积核(3x3)的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合/表达能力。
  • 卷积层全部都是3*3的卷积核,用上图中conv3-xxx表示,xxx表示通道数。其步长为1,用padding=same填充。
  • 池化层的池化核为2*2

3、卷积计算

vgg16,动手学深度学习,深度学习,人工智能,cnn,神经网络

具体的过程:

  1. 输入图像尺寸为224x224x3,经64个通道为3的3x3的卷积核,步长为1,padding=same填充,卷积两次,再经ReLU激活,输出的尺寸大小为224x224x64
  2. 经max pooling(最大化池化),滤波器为2x2,步长为2,图像尺寸减半,池化后的尺寸变为112x112x64
  3. 经128个3x3的卷积核,两次卷积,ReLU激活,尺寸变为112x112x128
  4. max pooling池化,尺寸变为56x56x128
  5. 经256个3x3的卷积核,三次卷积,ReLU激活,尺寸变为56x56x256
  6. max pooling池化,尺寸变为28x28x256
  7. 经512个3x3的卷积核,三次卷积,ReLU激活,尺寸变为28x28x512
  8. max pooling池化,尺寸变为14x14x512
  9. 经512个3x3的卷积核,三次卷积,ReLU,尺寸变为14x14x512
  10. max pooling池化,尺寸变为7x7x512
  11. 然后Flatten(),将数据拉平成向量,变成一维51277=25088。
  12. 再经过两层1x1x4096,一层1x1x1000的全连接层(共三层),经ReLU激活
  13. 最后通过softmax输出1000个预测结果

从上面的过程可以看出VGG网络结构还是挺简洁的,都是由小卷积核、小池化核、ReLU组合而成。其简化图如下(以VGG16为例):

vgg16,动手学深度学习,深度学习,人工智能,cnn,神经网络

 4、权重参数(不考虑偏置)

1)输入层有0个参数,所需存储容量为224x224x3=150k
2)对于第一层卷积,由于输入图的通道数是3,网络必须要有通道数为3的的卷积核,这样的卷积核有64个,因此总共有(3x3x3)x64 = 1728个参数。
所需存储容量为224x224x64=3.2M
计算量为:输入图像224×224×3,输出224×224×64,卷积核大小3×3。

所以Times=224×224×3x3×3×64=8.7×107

3)池化层有0个参数,所需存储容量为 图像尺寸x图像尺寸x通道数=xxx k
4)全连接层的权重参数数目的计算方法为:前一层节点数×本层的节点数。因此,全连接层的参数分别为:
7x7x512x4096 = 1027,645,444
4096x4096 = 16,781,321
4096x1000 = 4096000
按上述步骤计算的VGG16整个网络总共所占的存储容量为24M*4bytes=96MB/image 。

所有参数为138M
VGG16具有如此之大的参数数目,可以预期它具有很高的拟合能力;

但同时缺点也很明显:
即训练时间过长,调参难度大。
需要的存储容量大,不利于部署。
5、VGG模型所需要的内存容量

借鉴一下大佬的图:

vgg16,动手学深度学习,深度学习,人工智能,cnn,神经网络

 6、总结文章来源地址https://www.toymoban.com/news/detail-793685.html

  • 通过增加深度能有效地提升性能;
  • VGG16是最佳的模型,从头到尾只有3x3卷积与2x2池化,简洁优美;
  • 卷积可代替全连接,可适应各种尺寸的图片。

到了这里,关于深度学习——VGG16模型详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能与深度学习】均方损失,交叉墒损失,vgg损失,三元组损失

    均方损失,交叉墒损失,vgg损失,三元组损失的应用场景有哪些 均方损失(Mean Squared Error, MSE),交叉熵损失(Cross-Entropy Loss),和三元组损失(Triplet Loss)是机器学习和深度学习中常用的损失函数,每个都适用于不同的应用场景: 1. 均方损失(MSE) 应用场景 :主要用于回

    2024年01月22日
    浏览(86)
  • 图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

    Hi,大家好,我是源于花海。 本文主要使用数据标注工具 Labelme   对自行车(bike)和摩托车(motorcycle)这两种训练样本进行标注,使用预训练模型  VGG16  作为卷积基,并在其之上添加了全连接层。基于标注样本的信息和预训练模型的特征提取能力,训练自己构建的 图像分

    2024年01月20日
    浏览(35)
  • 深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型结构、实现、模型特点详细介绍

    LeNet是最早的卷积神经网络之一 [1] ,其被提出用于识别手写数字和机器印刷字符。1998年,Yann LeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数字识别任务中取得了巨大成功。算法中阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用

    2024年02月08日
    浏览(30)
  • 计算模型的GFLOPs和参数量 & 举例VGG16和DETR

    近期忙于写论文,分享一下论文中表格数据的计算方法。 目录 一、FLOPS、FLOPs和GFLOPs的概念 二、计算VGG16的GFLOPs和参数量 三、计算DETR的GFLOPs和参数量 四、整理数据表格 FLOPS: 注意S是大写,是  “每秒所执行的浮点运算次数” (floating-point operations per second)的缩写。它常被

    2023年04月09日
    浏览(23)
  • 语义分割 | 基于 VGG16 预训练网络和 Segnet 架构实现迁移学习

    Hi,大家好,我是源于花海。 本文主要使用数据标注工具 Labelme 对猫(cat)和狗(dog)这两种训练样本进行标注,使用预训练模型 VGG16 作为卷积基,并在其之上添加了全连接层。基于标注样本的信息和预训练模型的特征提取能力以及 Segnet 架构,训练自己构建的 语义分割 网

    2024年01月25日
    浏览(36)
  • “深度学习”学习日记:Tensorflow实现VGG每一个卷积层的可视化

    2023.8.19 深度学习的卷积对于初学者是非常抽象,当时在入门学习的时候直接劝退一大班人,还好我坚持了下来。可视化时用到的图片(我们学校的一角!!!)以下展示了一个卷积和一次Relu的变化  作者使用的GPU是RTX 3050ti 在这张图像上已经出现了Cuda out of memory了。防止其他

    2024年02月11日
    浏览(30)
  • vgg16-pytorch

    基于pytorch实现VGG16模型 刚听完土哥的入门pytorch,试着写一个不完善的vgg16 VGG16具体的架构: VGG16模型构建: 卷积池化后尺寸计算公式: 引入库: dilation默认为1,计算第一个卷积的步长和填充: 图片为3通道,输出后维64通道,卷积核为3x3,第一个卷积层为: 在第一个池化这里

    2024年02月16日
    浏览(28)
  • 经典卷积神经网络——VGG16

    我们都知道Alexnet是卷积神经网络的开山之作,但是由于卷积核太大,移动步长大,无填充,所以14年提出的VGG网络解决了这一问题 VGG网络由牛津大学在2014年ImageNet挑战赛本地和分类追踪分别获得了第一名和第二名。研究卷积网络深度对其影响在大规模图像识别设置中的准确性

    2024年02月03日
    浏览(53)
  • VGG16详细原理(含tensorflow版源码)

            VGG16是一个经典的卷积神经网络模型,由牛津大学计算机视觉组(Visual Geometry Group)提出,用于参加2014年的ImageNet图像分类比赛。VGG16的名称来源于网络中包含的16个卷积层,其基本结构如下: 输入层:接收大小为224x224的RGB图像。 卷积层:共13个卷积层,每个卷积

    2024年02月05日
    浏览(28)
  • 【人工智能Ⅱ】实验2:VGG图像分类

    实验2:VGG图像分类 一:实验目的与要求 1:掌握VGG网络的原理与结构。 2:学会利用VGG网络建立训练模型,并对模型进行评估。 3:学会使用VGG网络进行分类。 二:实验内容 1:用VGG网络对自选图像数据集进行多分类预测。 2:应用图像增强方法进行数据集的扩充。 3:调整

    2024年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包