【深度学习】全面理解VGG16模型

【深度学习】全面理解VGG16模型全面理解 VGG16 模型 VGG16 的结构层次介绍结构图 VGG16 模型所需要的内存容量介绍卷积中的基本概念 1 从 input 到 conv1 2 从 conv1 到 conv2 之间的过渡 3 conv2 到 conv3 4 进入 conv3 5 从 conv3 到 conv4 之间的过渡 6 最后到三层全连接 FC 层结论 VGG16 的结构层次 vgg16 总共有 16 层 13 个卷积层和 3 个全连接层 第一次经过 64 个卷积核的两次卷积后

VGG16的结构层次

介绍结构图

首先需要看懂上图中的一些式子含义,如conv3-64,conv3-125

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

VGG16模型所需要的内存容量

介绍卷积中的基本概念

什么是卷积? 最直观的解释,直接上图(引用网上最火的图片)
卷积过程
image为需要进行卷积的图片,而convolved feature为卷积后得到的特征图;那么什么是卷积的过滤器也就是filter呢?图中黄色矩阵即为filter,image为5X5大小的一维图像,filter为3X3大小的一维矩阵;卷积过程是:filter与image对应位置相乘再相加之和,得到此时中心位置的值,填入第一行第一列,然后在移动一个格子(stride=1),继续与下一个位置卷积…最后得到是3X3X1的矩阵。
——这里需要注明:卷积后的结果矩阵维度=(image矩阵维数-filter矩阵维数+2xpad)/2+1,对应上图即宽width:3=(5-3+2×0)/1+1,高height:3=(5-3+2×0)/1+1;
如果还不懂,请接着看下图(为博主自己手写的卷积过程图)
卷积过程
在这里补充经过padding填充,那么卷积后图片大小不会发生改变,如5X5的图像大小,padding=1变成7X7,再用3X3的filter进行卷积,那么卷积后的宽高为(7-3+2×1)/1+1=7。





什么是maxpool? 最大池化就是取filter对应区域内最大像素值替代该像素点值,其作用是降维。在这里,池化使用的滤波器都是2*2大小,因此池化后得到的图像大小为原来的1/2。下图为最大池化过程:
最大池化过程

介绍完基本概念之后,就开始进入到理解VGG16的网络模型了

1.从input到conv1:

那么,第一层怎么将300x300x3的矩阵变成一个300x300x64的呢??

在这里插入图片描述
假设RGB图像为蓝色框,橙色方块为3x3x3的卷积核(即filter),那么卷积后得到的图像应为298x298x1(此处没有进行padding,步长为1),但是经过填充一圈的矩阵,所以得到的结果为300x300x1,在这层中有64个卷积核,那么原来的300x300x1就变成了300x300x64。

2.从conv1到conv2之间的过渡:

3.conv2到conv3:

我们从上面的过程中知道了,input为300x300x3的图片,经过第一层之后变成150x150x64,那么第二层里面有128个卷积核,可以推出经过第二层后得到是75x75x128。

4.进入conv3:

第三层
可知,第三层有256个卷积核,那么得到就是75x75x256

5.从conv3到conv4之间的过渡:

在这里插入图片描述
这里75是奇数,经过pad之后变成偶数76,那么就得到结果为38x38x256
其余的过程与上述一样,最终得到10x10x512。

6.最后到三层全连接FC层

在全连接层中的每一个节点都与上一层每个节点连接,把前一层的输出特征都综合起来。在VGG16中,第一个全连接层FC1有4096个节点,上一层pool之后得到是10x10x512=51200个节点,同样第二个全连接层FC2也有4096个节点,最后一个FC3有1000个节点。

结论

上述对VGG16进行了初步深入的理解,还有很多知识点没写,不足之处请多多原谅。另外本博文也参考了其他文章,图片来源于网络。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218811.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:25
下一篇 2026年3月17日 下午11:26


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号