VGGNet:very deep convolutional networks for large-scale image recognition LCLR2015

文章信息
题目:VGGNet:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION (ICLR2015)
原文:https://paperswithcode.com/paper/very-deep-convolutional-networks-for-large
数据集:ILSVRC 2012
一、简述
  这篇文章是以比赛为目的——解决ImageNet中的1000类图像分类和 localization。作者团队对当时的卷积网络进行改进(仅改变深度),即通过固定除深度以外的参数和对网络的每个层加入3×3的卷积滤波器来增加网络层数(改变深度)。本文提出16和19层的VGGNet效果最好,即VGG16、VGG19。VGG网络是传统卷积网络在深度上所能达到的极致。

二、网络模块
  下图每一列都是一个模型,本文提出6个网络模型,命名为A、A-LRN、B、C、D、E。其中模型D和E就是所说的VGG16和VGG19。每一个模型都分为5个block,且卷积核都为3×3大小,随着模型变深,卷积核大小不变,但个数增加,通道数也会相应修改。如网络A,block1中卷积核大小3,个数64,在block2中卷积核大小不变,个数翻倍128个,在block3中卷积核大小不变,个数在block的基础上又翻倍变成256个,同时卷积层数从1层变成了2层。A-LRN表示在网络A的基础上加入了LRN层,但在VGG中对A加入LRN层作用不大。
  输入3通道的224×224的RGB彩色图像,经过VGG网络的处理,得到1000个类别的后验概率,softmax将这1000个后验概率归一化,选择其中最大的概率作为图像预测的结果。实验表明VGG16和VGG19网络效果最好。
在这里插入图片描述

### VGG网络架构 VGG网络由牛津大学视觉几何组(Visual Geometry Group)开发,旨在解决大规模图像识别中的挑战[^1]。该网络的特点在于使用非常深的卷积层结构来提取特征。 #### 架构特点 - **多层堆叠**:VGG采用了多个连续的小尺寸(3×3)卷积核进行特征抽取,而不是采用较大尺寸的卷积核。 - **固定步幅和填充方式**:所有的卷积操作都保持相同的步幅(stride=1),并使用零填充使得输入输出具有相同的空间维度。 - **池化层配置**:在网络的不同阶段之后加入最大池化层以减少空间分辨率,从而降低参数数量并控制过拟合风险。 - **全连接层设计**:最后几层通常为全连接层,在分类任务中用于映射到类别标签上;然而现代实现往往省略这些密集层转而使用全局平均池化替代。 具体来说,最著名的两个版本分别是: - **VGG16**:包含13个卷积层以及3个全连接层; - **VGG19**:则进一步扩展到了16个卷积层加3个全连接层。 这种简单却有效的设计方案不仅提高了模型性能,同时也促进了后续研究者对于更深更复杂网络结构探索的热情。 ```python import torch.nn as nn class VGG(nn.Module): def __init__(self, num_classes=1000): super(VGG, self).__init__() # 定义卷积部分 self.features = nn.Sequential( *make_layers([64]*2 + [128]*2 + [256]*3 + [512]*3 + [512]*3)) # 定义分类器部分 (可选) self.classifier = nn.Linear(512*7*7, num_classes) def forward(self, x): out = self.features(x) out = out.view(out.size(0), -1) # 展平处理 out = self.classifier(out) return out def make_layers(cfg): layers = [] in_channels = 3 for v in cfg: if v == 'M': layers += [nn.MaxPool2d(kernel_size=2, stride=2)] else: conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1) layers += [conv2d, nn.ReLU(inplace=True)] in_channels = v return nn.Sequential(*layers) ``` ### 应用领域 自发布以来,VGG已被广泛应用于各种计算机视觉任务当中: - 图像分类与目标检测; - 实例分割; - 场景理解; 此外,VGG作为预训练基础模型也被用来迁移学习新数据集上的相似问题求解.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值