当前位置: 首页 > ai >正文

小土堆pytorch--现有网络模型的使用及修改

现有网络模型的使用及修改

  • 一级目录
    • 二级目录
      • 三级目录
  • 现有网络模型的使用及修改
    • 1.VGG16模型
      • VGG16网络模型简介
      • **核心特点**
      • **网络结构细节**
      • **优缺点与应用**
      • **变种与后续发展**
    • 2. 使用vgg16模型

一级目录

二级目录

三级目录

现有网络模型的使用及修改

1.VGG16模型

VGG16网络模型简介

VGG16是2014年由牛津大学视觉几何组(Visual Geometry Group, VGG)提出的卷积神经网络(CNN)模型,在当年的ImageNet大规模视觉识别挑战赛(ILSVRC)中获得亚军。它以结构简洁、层次深、特征表达能力强著称,是深度学习领域的经典模型之一,常用于图像分类、目标检测等任务的特征提取。

核心特点

  1. 深度结构

    • 16个可训练的权重层组成(包括13个卷积层和3个全连接层),网络层次较深,通过堆叠多个小尺寸卷积核(3×3)来增加网络深度和非线性表达能力。
    • 相比早期使用大尺寸卷积核(如AlexNet的11×11)的模型,VGG16通过小卷积核的组合(两个3×3卷积核相当于1个5×5的感受野,三个3×3相当于1个7×7的感受野),在减少参数的同时增强特征提取能力。
  2. 简洁的网络设计

    • 整体结构统一,采用卷积层+池化层交替堆叠的模式:
      • 卷积层:均使用3×3卷积核,步长为1, padding为1(保持特征图尺寸不变),激活函数为ReLU。
      • 池化层:均使用2×2最大池化(Max Pooling),步长为2,用于下采样和减少计算量。
  3. 全连接层与分类

    • 最后3层为全连接层,前两层各有4096个神经元,第三层有1000个神经元(对应ImageNet的1000类分类任务),通过Softmax激活函数输出分类概率。

网络结构细节

以下是VGG16的层结构概览(以输入224×224 RGB图像为例):

层类型尺寸/数量说明
输入层224×224×3输入图像(RGB三通道)
卷积块1
卷积层64×3×3×22个3×3卷积核,输出64通道,ReLU激活
最大池化层2×2,步长2输出尺寸变为112×112×64
卷积块2
卷积层128×3×3×22个3×3卷积核,输出128通道,ReLU激活
最大池化层2×2,步长2输出尺寸变为56×56×128
卷积块3
卷积层256×3×3×33个3×3卷积核,输出256通道,ReLU激活
最大池化层2×2,步长2输出尺寸变为28×28×256
卷积块4
卷积层512×3×3×33个3×3卷积核,输出512通道,ReLU激活
最大池化层2×2,步长2输出尺寸变为14×14×512
卷积块5
卷积层512×3×3×33个3×3卷积核,输出512通道,ReLU激活
最大池化层2×2,步长2输出尺寸变为7×7×512
全连接层
全连接层4096神经元ReLU激活,Dropout(防止过拟合)
全连接层4096神经元ReLU激活,Dropout
全连接层1000神经元Softmax激活,输出分类概率

优缺点与应用

  • 优点

    • 结构简单、层次分明,易于复现和修改,是研究CNN网络深度影响的经典基准。
    • 特征表达能力强,预训练权重可迁移到其他视觉任务(如目标检测、图像分割)中进行迁移学习。
  • 缺点

    • 参数总量较大(约1.38亿参数),计算复杂度高,训练需要大量显存和时间。
    • 全连接层占参数比例高,对输入图像尺寸敏感(需固定为224×224)。
  • 应用场景

    • 图像分类(如ImageNet)、目标检测(如Faster R-CNN中作为特征提取骨干网络)、图像特征提取等。

变种与后续发展

VGG系列还包括VGG11、VGG13、VGG19等变种,主要区别在于卷积层的数量(如VGG19有19个权重层)。尽管VGG模型在现代任务中逐渐被更高效的网络(如ResNet、EfficientNet)取代,但其设计思想(如小卷积核堆叠、层次化特征提取)对后续CNN发展具有深远影响。

2. 使用vgg16模型

import torchvision
from torch import nnvgg16 = torchvision.models.vgg16(pretrained=False)
vgg_true = torchvision.models.vgg16(pretrained=True) # 预训练,保留参数print(vgg_true)

在这里插入图片描述
可以看到vgg网络模型有1000个特征输出
我们可以通过一下方法对网络模型的结构进行修改,让网络模型有10个特征输出

import torchvision
from torch import nnvgg16_false = torchvision.models.vgg16(pretrained=False)
vgg16_true = torchvision.models.vgg16(pretrained=True) # 预训练,保留参数# print(vgg_true)
train_data = torchvision.datasets.CIFAR10("./das",train=True, transform=torchvision.transforms.ToTensor(),download=True)vgg16_true.classifier.add_module('add_linear', nn.Linear(1000,10)) # 添加一层
print(vgg16_true)

在这里插入图片描述

http://www.xdnf.cn/news/9256.html

相关文章:

  • 数据结构中无向图的邻接矩阵详解
  • 鸿蒙OSUniApp 实现的数据可视化图表组件#三方框架 #Uniapp
  • Rust 学习笔记:迭代器
  • 组合型回溯+剪枝
  • OpenCV CUDA模块图像处理------颜色空间处理之颜色空间转换函数cvtColor()
  • Axure中继器学习笔记
  • DB2数据库HADR配置及详解
  • Femap许可证与网络安全策略
  • arcgis字段计算器中计算矢量面的每个点坐标
  • vscode开发stm32,main.c文件中出现很多报错影响开发解决日志
  • 【脚本】一键部署脚本
  • 深入理解设计模式之命令模式
  • 公共场所人脸识别设备备案合规要点
  • [STM32学习笔记(九)]CubeMX项目使用系统定时器SysTick的中断服务函数进行定时
  • AWS之AI服务
  • 《OpenFeign 最佳实践:三大优雅调用远程服务的方式》​
  • 一种C# 的SM4 的 加解密的实现,一般用于医疗或者支付
  • 如何在WordPress网站中添加相册/画廊
  • 【分治】计算右侧小于当前元素的个数
  • Java集合框架详解:List、Set、Map及其实现类
  • 电子信息科学与技术专业生涯规划书-嵌入式方向(大一下)
  • 《计算机组成原理》第 3 章 - 系统总线
  • 微服务难题?Nacos服务发现来救场
  • 向量数据库对比和选择:Pinecone、Chroma、FAISS、Milvus、Weaviate
  • sqli-第三十二关——bypass addslashes
  • 使用redis代替session的登录校验
  • 企业微信内部网页开发流程笔记
  • [Java恶补day8] 3. 无重复字符的最长子串
  • 一起学数据结构和算法(三)| 字符串(线性结构)
  • 零基础远程连接课题组Linux服务器,安装anaconda,配置python环境(换源),在服务器上运行python代码【1/3 适合小白,步骤详细!!!】