必知必会的VGG网络(含代码)

在这里插入图片描述

关注公众号【CV算法恩仇录】,后台回复【VGG源码】即可获得代码。

本文概述了 VGG的框架和代码,全文大约 2000 字,阅读时间 8 分钟。

内容分为三个部分:

  1. VGG的结构;
  2. VGG的网络细节;
  3. VGG的代码实现。

VGG 的结构

牛津大学的视觉几何组(Visual Geometry Group)设计了 VGGNet(也称为 VGG),一种经典的卷积神经网络 (CNN) 架构。在 2014 年 ILSVRC 分类任务中,VGG 取得了第二名的成绩。现在过去多年,VGG 仍然被广泛应用在图像识别、语音识别、机器翻译、机器人等领域。

VGG 具有 16 层(VGG-16)和 19 层(VGG-19)的卷积神经网络,两者的结构类似,接下来详细解读 VGG-16 的结构,VGG-16 由 13 个卷积层和 3 个全连接层组成(层数是计算全连接层的卷积层个数),如下图所示,图中 conv 为卷积层,pool 为池化层,最后三个 fc 4096 为全连接层。

VGG16相比之前网络的改进是 3 3 3 3 × 3 3\times3 3×3卷积核来代替 7 × 7 7\times7 7×7卷积核, 2 2 2 3 × 3 3\times3 3×3卷积核来代替 5 × 5 5\times5 5×5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,减少参数,提升了网络的深度。

比如, 3 3 3个步长为 1 1 1的卷积核( 3 × 3 3\times3 3×3)的层层叠加,其参数总量为 3 × 9 × C 2 3 \times 9 \times C^2 3×9×C2。如果直接使用 7 × 7 7\times7 7×7 的卷积核,其参数总量为 49 × C 2 49\times C^2 49×C2 ,这里 C 指的是输入和输出的通道数。很明显, 2 × C 2 2\times C^2 2×C2 小于 49 × C 2 49\times C^2 49×C2,即减少了参数。

VGG 的网络细节

VGG-16 采用了五组卷积与三个全连接层,最后使用 Softmax 做分类。VGG-16 有个显著的特点:每次经过池化层后特征图的尺寸减小一倍,而通道数则增加一倍(最后一个池化层除外)。每一层的卷积层的细节如表格所示:
回顾特征图的计算

O 是输出图像,I 是输入图像,

P 是 padding,K 是 kernel size,S 是步长。

输出特征图大小计算公式 O = ( I + 2 P – K ) / S + 1 O = (I + 2P – K) / S + 1 O=(I+2PK)/S+1

参数量: K × K × 输入的 c h a n n e l × 输出的 c h a n n e l K\times K \times 输入的 channel \times 输出的 channel K×K×输入的channel×输出的channel



VGG 的代码实现

VGG-16 的五组卷积相似,在撰写代码的时候,可以建一个 Layer 类,通过循环添加每个层的顺序执行,请查看下面的代码 make_layers 函数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考链接:
https://icode.best/i/36427845644631
https://blog.csdn.net/weixin_39875161/article/details/88364442
https://mp.weixin.qq.com/s/vWuGW4iMD1MjVDZVCqH_FA

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值