网站怎么申请百度小程序,给自己公司做网站运营,当今做哪些网站能致富,专业做制作网站VGG-19 是由牛津大学视觉几何组和 Google DeepMind 的研究人员在 2014 年提出的一个非常经典的深度卷积神经网络模型。 一 核心结构
#xff08;1#xff09;深度#xff1a; 模型名称中的 19 指的是模型拥有 19 层带有权重的层#xff08;通常指#xff1a;…VGG-19 是由牛津大学视觉几何组和 Google DeepMind 的研究人员在 2014 年提出的一个非常经典的深度卷积神经网络模型。 一 核心结构
1深度 模型名称中的 19 指的是模型拥有 19 层带有权重的层通常指16 个卷积层 3 个全连接层 19。如果严格数带参数的层输入层和 ReLU 激活层不计入深度统计。 2简单范式 VGG 系列模型包括 VGG-11 VGG-13 VGG-16 VGG-19的核心思想非常简单只使用非常小的 3x3 卷积核并通过连续堆叠多个这样的卷积层来构建一个很深的网络。这种设计在保持相同感受野的同时大大减少了参数量相比大卷积核并增加了网络的深度和非线性。 3结构图
输入图像 (224x224x3 RGB)
- 2 x [卷积 (3x3, 64)] - 最大池化 (2x2) // Block 1
- 2 x [卷积 (3x3, 128)] - 最大池化 (2x2) // Block 2
- 4 x [卷积 (3x3, 256)] - 最大池化 (2x2) // Block 3
- 4 x [卷积 (3x3, 512)] - 最大池化 (2x2) // Block 4
- 4 x [卷积 (3x3, 512)] - 最大池化 (2x2) // Block 5
- 3 x [全连接 (4096, 4096, 1000)] // FC Layers
- Softmax - 1000 类输出概率4激活函数 所有卷积层和全连接层后都使用 ReLU (Rectified Linear Unit) 激活函数这是深度学习中常见的非线性激活函数。 5池化层 使用 2x2 的最大池化层Max Pooling步长为 2在每组卷积块之后将特征图的空间尺寸减半。总共有 5 次空间下采样池化。 6全连接层 在卷积部分之后通常有两个 4096 单元的全连接层最后是一个 1000 单元对应 ImageNet 的 1000 个类别的输出层。
二 模型特点
1深度有效 通过堆叠多个小的 3x3 卷积核VGG-19 证明了增加网络深度层数能显著提升模型理解复杂视觉特征的能力。 2结构统一 所有卷积层都使用相同的 3x3 核大小步幅为 1填充为 1 以保持空间分辨率直到池化设计非常一致且易于理解。 3参数量大 VGG-19 是一个非常大的模型拥有约 1.38 亿个参数主要集中在最后几个全连接层。这使得它训练和推理都非常耗费计算资源和内存。 4高精度 (At the time) 在 2014 年的 ImageNet 竞赛中VGG-19 展现出了当时最顶尖的识别精度。虽然当年冠军是 GoogLeNet/Inception-v1但 VGG 因其结构简单、效果显著而极具影响力 三 与之前版本的区别
以VGG-1613 个卷积层 3 个全连接层举例
VGG-16 和 VGG-19 的结构非常相似主要区别在于 Block 3、4、5 中卷积层的数量
Block 3 VGG-16 有 3 层卷积VGG-19 有 4 层。
Block 4 VGG-16 有 3 层卷积VGG-19 有 4 层。
Block 5 VGG-16 有 3 层卷积VGG-19 有 4 层。
VGG-19 比 VGG-16 更深多 3 个卷积层参数量也略多但量级都在 1.38 亿附近。精度通常略高于 VGG-16但提升边际效应递减。
输入图像 (224x224x3 RGB)
- 2 x [卷积 (3x3, 64)] - 最大池化 (2x2) // Block 1
- 2 x [卷积 (3x3, 128)] - 最大池化 (2x2) // Block 2
- 3 x [卷积 (3x3, 256)] - 最大池化 (2x2) // Block 3
- 3 x [卷积 (3x3, 512)] - 最大池化 (2x2) // Block 4
- 3 x [卷积 (3x3, 512)] - 最大池化 (2x2) // Block 5
- 3 x [全连接 (4096, 4096, 1000)] // FC Layers
- Softmax - 1000 类输出概率# VGG-16模型定义
class VGG16(nn.Module):def __init__(self, num_classes10):super(VGG16, self).__init__()self.features nn.Sequential(# Block 1nn.Conv2d(3, 64, kernel_size3, padding1),nn.BatchNorm2d(64),nn.ReLU(inplaceTrue),nn.Conv2d(64, 64, kernel_size3, padding1),nn.BatchNorm2d(64),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size2, stride2),# Block 2nn.Conv2d(64, 128, kernel_size3, padding1),nn.BatchNorm2d(128),nn.ReLU(inplaceTrue),nn.Conv2d(128, 128, kernel_size3, padding1),nn.BatchNorm2d(128),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size2, stride2),# Block 3nn.Conv2d(128, 256, kernel_size3, padding1),nn.BatchNorm2d(256),nn.ReLU(inplaceTrue),nn.Conv2d(256, 256, kernel_size3, padding1),nn.BatchNorm2d(256),nn.ReLU(inplaceTrue),nn.Conv2d(256, 256, kernel_size3, padding1),nn.BatchNorm2d(256),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size2, stride2),# Block 4nn.Conv2d(256, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.Conv2d(512, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.Conv2d(512, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size2, stride2),# Block 5nn.Conv2d(512, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.Conv2d(512, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.Conv2d(512, 512, kernel_size3, padding1),nn.BatchNorm2d(512),nn.ReLU(inplaceTrue),nn.MaxPool2d(kernel_size2, stride2),)
四 VGG优缺点
优点缺点 历史贡献深度验证 - 首创使用连续小卷积堆叠深度网络 - 证明了网络深度对性能的关键作用参数量过大主要缺陷 - 全连接层FC参数量爆炸 - FC1: 25088×4096 ≈ 1.03亿参数 - 总参数量高达 1.38亿结构统一性 - 仅用 3×3小卷积核 2×2最大池化 - 模块化堆叠64→128→256→512通道计算资源消耗大 - 大量卷积全连接导致 - 训练/推理速度慢 - 显存占用高移动端难以部署特征表达能力强大 - 深层网络捕获多尺度特征 - 特征通用性极优适用于迁移学习梯度问题 - 原始版本未用BN层Batch Normalization - 训练易出现梯度消失/爆炸需配合Dropout广泛迁移应用 - 预训练特征成为早期CV任务标准骨干 - 如目标检测、图像风格迁移等全连接冗余严重 - FC层参数占整体 90% - 后发模型如ResNet用全局池化替代FC简洁设计理念 - 架构规整透明易于复现/改进 - 小卷积堆叠优于大核更多非线性更少参数训练成本高昂 - 需大数据集ImageNet级防止过拟合 - 对超参数敏感 VGG-19 尽管它取得了显著的高精度但因其庞大的参数量和计算开销在新模型设计和效率敏感的部署场景中已被 ResNet 等更现代的网络结构所取代。但在图像表示学习、迁移学习和理解深度网络基础方面VGG-19 仍然是一个非常重要和经典的基准模型。