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

深度学习之第八课迁移学习(残差网络ResNet)

目录

简介

一、迁移学习

1.什么是迁移学习

2. 迁移学习的步骤

二、残差网络ResNet

1.了解ResNet

2.ResNet网络—残差结构

三、代码分析

1. 导入必要的库

2. 模型准备(迁移学习)

3. 数据预处理

4. 自定义数据集类

5. 数据加载器

6. 设备配置

7. 训练函数

8. 测试函数

9. 训练配置和执行

整体流程总结

简介

经过长久的卷积神经网络的学习、我们学习了如何提高模型的准确率,但是最终我们的准确率还是没达到百分之八十。原因是因为我们本身模型的局限,面对现有很多成熟的模型,它们有很好的效果,都是经过多次训练选取了最佳的参数,那我们能不能去使用哪些大佬的模型呢?

答案是可以的,这就使用到迁移学习的知识。

深度学习系列之第五课卷积神经网络_CNN_如何训练自己的数据集(暨食物分类案例)

[深度学习之第六课卷积神经网络 (CNN)如何保存和使用最优模型][_CNN 1]

[深度学习之第七课卷积神经网络 (CNN)调整学习率][_CNN 2]

一、迁移学习

1.什么是迁移学习

迁移学习是指利用已经训练好的模型,在新的任务上进行微调。迁移学习可以加快模型训练速度,提高模型性能,并且在数据稀缺的情况下也能很好地工作。

2. 迁移学习的步骤

1、选择预训练的模型和适当的层:通常,我们会选择在大规模图像数据集(如ImageNet)上预训练的模型,如VGG、ResNet等。然后,根据新数据集的特点,选择需要微调的模型层。对于低级特征的任务(如边缘检测),最好使用浅层模型的层,而对于高级特征的任务(如分类),则应选择更深层次的模型。

2、冻结预训练模型的参数:保持预训练模型的权重不变,只训练新增加的层或者微调一些层,避免因为在数据集中过拟合导致预训练模型过度拟合。

3、在新数据集上训练新增加的层:在冻结预训练模型的参数情况下,训练新增加的层。这样,可以使新模型适应新的任务,从而获得更高的性能。

4、微调预训练模型的层:在新层上进行训练后,可以解冻一些已经训练过的层,并且将它们作为微调的目标。这样做可以提高模型在新数据集上的性能。

5、评估和测试:在训练完成之后,使用测试集对模型进行评估。如果模型的性能仍然不够好,可以尝试调整超参数或者更改微调层。

太多概念,我们直接使用残差网络进行迁移学习。

二、残差网络ResNet

1.了解ResNet

ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。

传统卷积神经网络存在的问题?

卷积神经网络都是通过卷积层和池化层的叠加组成的。 在实际的试验中发现,随着卷积层和池化层的叠加,学习效果不会一直逐渐变好,反而出现2个问题:

1、梯度消失和梯度爆炸 梯度消失:若每一层的误差梯度小于1,反向传播时,网络越深,梯度越趋近于0 梯度爆炸:若每一层的误差梯度大于1,反向传播时,网络越深,梯度越来越大

2、退化问题

如何解决问题?

为了解决梯度消失或梯度爆炸问题,论文提出通过数据的预处理以及在网络中使用 BN(Batch Normalization)层来解决。 为了解决深层网络中的退化问题,可以人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为 残差网络 (ResNets)。

实线为测试集错误率 虚线为训练集错误率

2.ResNet网络—残差结构

ResNet的经典网络结构有:ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152几种,其中,ResNet-18和ResNet-34的基本结构相同,属于相对浅层的网络,后面3种的基本结构不同于ResNet-18和ResNet-34,属于更深层的网络。

不论是多少层的ResNet网络,它们都有以下共同点:

  • 网络一共包含5个卷积组,每个卷积组中包含1个或多个基本的卷积计算过程(Conv-> BN->ReLU)

  • 每个卷积组中包含1次下采样操作,使特征图大小减半,下采样通过以下两种方式实现:

    • 最大池化,步长取2,只用于第2个卷积组(Conv2_x)
    • 卷积,步长取2,用于除第2个卷积组之外的4个卷积组
  • 第1个卷积组只包含1次卷积计算操作,5种典型ResNet结构的第1个卷积组完全相同,卷积核均为7x7, 步长为均2

  • 第2-5个卷积组都包含多个相同的残差单元,在很多代码实现上,通常把第2-5个卷积组分别叫做Stage1、Stage2、Stage3、Stage4

  • 首先是第一层卷积使用kernel 7∗7,步长为2,padding为3。之后进行BN,ReLU和maxpool。这些构成了第一部分卷积模块conv1。

  • 然后是四个stage,有些代码中用make_l

http://www.jsqmd.com/news/311110/

相关文章:

  • 在Windows10中通过命令行,使用g++和Cmake从源代码构建Opencv,并进行测试
  • C语言指针运算终极指南:从入门到实战,避开新手必踩的十大坑!
  • 2026年知名的混合乳化泵全方位厂家推荐参考
  • linux常用命令——压缩命令
  • 8888888888888
  • 888888888
  • 如何利用智能大模型复盘自身失败和贫穷
  • 2026年评价高的海上监测浮标厂家采购参考指南
  • Flowise客户案例:在线教育平台智能辅导系统上线
  • 一键启动!SenseVoiceSmall + Gradio打造可视化语音分析工具
  • 工业控制场景下模拟I2C通信的完整指南
  • Z-Image-ComfyUI并发控制:避免显存溢出的小技巧
  • 2026年脾气好的威海摩托车驾校/威海汽车驾校专业推荐榜单
  • RetinaFace GPU算力优化部署:PyTorch 2.5+cu124环境下显存利用率提升实测
  • 测试OK的Android 8.0开机启动方案汇总
  • 熊靖宇领衔极简口腔疑难种植中心的优势有哪些?
  • 智能球机摄像头自带旋转355度视角
  • 2026年高评价原木定制批发商综合评估与精选推荐
  • 答辩现场要顺利通过,最容易说服评审组教授的 10 种回答结构
  • YOLOv12官版镜像训练全流程,附完整代码示例
  • EagleEye部署教程:NVIDIA Container Toolkit配置与GPU容器权限设置
  • 图片旋转判断模型部署教程(4090D):从镜像拉取到output.jpeg输出完整链路
  • Qwen3-VL-4B Pro效果展示:3D渲染图材质/光源/构图的专业级视觉评价生成
  • 30秒以上长语音测试,CAM++特征提取稳定性
  • bge-large-zh-v1.5实战案例:中文会议纪要关键信息向量化提取
  • Qwen视觉模型在医疗影像初筛中的应用:可行性验证案例
  • QWEN-AUDIO惊艳效果展示:四音色+六情感+双语混合语音合集
  • Z-Image-Turbo适合哪些场景?这5个最实用
  • EagleEye实战案例:零售门店人流统计中毫秒级目标检测落地解析
  • 游戏开发中 C++ 枚举的正确用法:必须用 `enum class`