VGG 网络架构

news/2025/3/19 18:07:41/文章来源:https://www.cnblogs.com/Dongmy/p/18781499
VGG(Visual Geometry Group)是由牛津大学的视觉几何组在2014年提出的一种深度卷积神经网络架构。VGG网络以其简单而深厚的结构而著称,特别是VGG16和VGG19,广泛应用于图像分类、目标检测等计算机视觉任务

1. VGG 网络架构

VGG网络的核心特点是使用多个小卷积滤波器(3x3)和相同的步幅(1),以及使用最大池化层(2x2,步幅为2)来降低特征图的尺寸。这种结构相较于使用大卷积核的传统网络在参数上更为有效,能够学习出更深层次的特征
1.1 VGG16 结构
  • 输入层:接受224x224x3的彩色图像输入。
  • 卷积层及池化层:
    • 卷积(3x3)-> 卷积(3x3)-> 最大池化(2x2)
    • 重复上述结构5次,每次卷积核数分别为64, 128, 256, 512和512。
  • 全连接层:有3个全连接层,神经元数量分别为4096, 4096和1000(输出类别,通常用于ImageNet)
  • 输出层:softmax激活函数
1.2 VGG19 结构
VGG19与VGG16类似,但增加了3个卷积层和一个全连接层,参数量更多

2. VGG 网络特点

  1. 小卷积核:VGG主要使用3x3的小卷积核,而不是更大的卷积核(如5x5或7x7)。小卷积核可以减少参数数量,同时通过堆叠多个小卷积核,可以达到和大卷积核相同的感受野
  2. 深度堆叠:VGG通过不断堆叠卷积层和池化层,构建了一个非常深的网络(通常是16层或19层),从而能够提取更复杂的特征
  3. 简单而统一的结构:VGG的结构非常规整,每一层的卷积核大小和步长都是固定的,便于理解和实现

3. VGG 网络的应用

VGG网络由于其深度和结构的灵活性,广泛应用于各种视觉任务,包括:
  1. 图像分类:VGG模型是图像分类任务中的经典模型之一,其预训练模型可以在各种数据集上进行微调,以实现高精度的图像分类
  2. 物体检测:VGG模型可以作为物体检测任务中的特征提取器,与RPN(Region Proposal Network)等模块结合,实现高精度的物体检测
  3. 图像生成:通过调整VGG模型的架构和损失函数,可以实现高质量图像的生成。例如,在风格迁移任务中,VGG模型可以提取内容图像和风格图像的特征,实现将一种风格应用于另一种内容
  4. 特征提取:VGG模型的卷积层可以作为预训练网络,用于提取图像特征,应用于其他任务,如目标检测和图像分类

4. VGG 网络的代码实现

以下是一个使用Python和PyTorch实现VGG16模型的示例
Python复制
import torch
import torch.nn as nnclass VGG16(nn.Module):def __init__(self, num_classes=1000):super(VGG16, self).__init__()self.conv_layers = nn.Sequential(# Conv Layer block 1nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=64, out_channels=64, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.MaxPool2d(kernel_size=2, stride=2),# Conv Layer block 2nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=128, out_channels=128, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.MaxPool2d(kernel_size=2, stride=2),# Conv Layer block 3nn.Conv2d(in_channels=128, out_channels=256, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=256, out_channels=256, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=256, out_channels=256, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.MaxPool2d(kernel_size=2, stride=2),# Conv Layer block 4nn.Conv2d(in_channels=256, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.MaxPool2d(kernel_size=2, stride=2),# Conv Layer block 5nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.Conv2d(in_channels=512, out_channels=512, kernel_size=3, padding=1),nn.ReLU(inplace=True),nn.MaxPool2d(kernel_size=2, stride=2),)self.fc_layers = nn.Sequential(nn.Linear(512 * 7 * 7, 4096),nn.ReLU(inplace=True),nn.Dropout(p=0.5),nn.Linear(4096, 4096),nn.ReLU(inplace=True),nn.Dropout(p=0.5),nn.Linear(4096, num_classes))def forward(self, x):x = self.conv_layers(x)x = x.view(-1, 512 * 7 * 7)x = self.fc_layers(x)return x# 创建模型
model = VGG16(num_classes=1000)
print(model)

5. 总结

VGG是深度学习中的一个经典模型,它的简单结构和优异性能使其成为图像分类任务的重要工具。虽然VGG的参数量较大,计算成本较高,但它的设计思想对后续的模型(如ResNet,Inception等)产生了深远的影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901624.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.19 学习记录

完成了仓库管理系统的制作,基本无bug,所展示功能都可以实现,基于 springboot 和 vue3 具体实现如下: 登录管理员页面 有仓库管理,物资管理,库存管理和统计功能仓库工作人员页面

网站测速——提升用户体验的关键

在互联网飞速发展的今天,网站已成为企业展示形象、提供服务以及用户获取信息的重要平台。而网站的速度,如同高速公路的路况,直接影响着用户的访问体验和满意度。因此,网站测速成为了网站运营和维护中不可或缺的关键环节。 网站速度对企业来说真的那么重要吗?​ 网站测速的…

表单和载荷的区别,以及python和js在处理json时的空格问题。

1、在 传载荷的时候,用json= 这样传底层会调用json.dumps来转换,如:response = requests.post(url,headers=headers,params=params,data=json.dumps(data.separators=(,":")) 2、在 传表单的时候,用data= 如:response = requests.post(url,headers=headers,…

荣誉| 触想TPC07-WIPC工控机荣获2025控制产品“新质”奖!

3月13日,第23届中国自动化与数字化“新质奖”评选颁奖典礼在无锡举办,触想自主研发的TPC07-WIPC工控机以卓越性能、灵活扩展和可靠性备受关注,获得2025控制产品“新质”奖。△ 触想代表朱涛(左四)上台领奖TPC07-WIPC系列工控机是触想面向边缘计算、机器视觉、AI智能等场景推…

汉诺塔游戏 | 数学益智游戏②

依托国产的 AI 豆包完成的网页端的汉诺塔益智游戏。前情概要 AI 辅助设计的一款数学益智游戏,汉诺塔游戏。 汉诺塔游戏body0 {font-family: Arial, sans-serif; text-align: left; background-color: #f4f4f9; display: flex; flex-direction: column; align-items: center; }…

20242801 2024-2025-2 《网络攻防实践》第3次作业

20242801 2024-2025-2 《网络攻防实践》第3次作业 一、实验内容使用tcpdump等网络流量分析工具对网络登陆过程进行嗅探,统计登陆通过中访问的ip地址信息。 使用wireshark或科来等网络分析工具,对以TELNET方式登陆BBS过程进行嗅探,查看BBS服务器的ip地址和访问端口,以及使用…

python 实验一(20241116魏铼)

课程:《Python程序设计》 班级: 2411 姓名: 魏铼 学号:20241116 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试分析,要有过程) 3.编写程序,练习变量和…

工具-安装uTools搜索工具

安装uTools工具 通过网盘分享的文件:uTools 链接: https://pan.baidu.com/s/10QoYus5aWO3b5bvTZ-c9uw?pwd=sky1 提取码: sky1 使用效果:alt + 空格键

“四预”驱动数字孪生水利:让智慧治水守护山河安澜

近年来,从黄河秋汛到海河特大洪水,从珠江流域性洪灾到长江罕见骤旱,极端天气频发让水安全问题备受关注。如何实现“治水于未发”?数字孪生水利以“预报、预警、预演、预案”(四预)为核心,正在掀起一场水利治理的智慧革命。 一、数字孪生水利:从物理世界到虚拟镜像的跃迁…

Pydantic模型继承解析:从字段继承到多态模型

title: Pydantic模型继承解析:从字段继承到多态模型 date: 2025/3/19 updated: 2025/3/19 author: cmdragon excerpt: 涵盖字段继承、属性覆盖、多态模型等关键机制。将掌握类型安全的继承体系构建方法,实现企业级数据校验方案,避免传统面向对象继承的常见陷阱。 categori…

20242428 实验一《Python程序设计》实验报告

学号20242428《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2424 姓名: 虎岳 学号:20242428 实验教师:王志强 实验日期:2025年3月19日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行调试…

记录一次PG数据库连接数超最大值问题

报错内容: nested exception is org.postgresql.util.PSQLException: FATAL: remaining connection slots are reserved for non-replication superuser connections排查手段 : SELECT COUNT(*) FROM pg_stat_activity; 查询活跃的连接 SHOW max_connections; 查询数…