news 2026/3/14 20:59:24

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习之第八课迁移学习(残差网络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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 3:09:05

linux常用命令——压缩命令

linux常用命令——压缩 1. tar 文件打包/解压 tar 本身是 打包工具(将多个文件 / 目录合并为一个 .tar 归档文件),不直接压缩。但它可以结合 gzip、bzip2、xz 等压缩算法,实现 “打包 压缩” 一体操作,生成 .tar.gz…

作者头像 李华
网站建设 2026/3/13 10:52:51

Flowise客户案例:在线教育平台智能辅导系统上线

Flowise客户案例:在线教育平台智能辅导系统上线 1. 为什么这家教育公司选择了Flowise 在线教育平台最常被用户问到的问题,不是“这门课怎么报名”,而是“老师什么时候回复我的问题”“这个知识点我反复看了三遍还是没懂”“能不能给我出几道…

作者头像 李华
网站建设 2026/3/13 13:50:45

30秒以上长语音测试,CAM++特征提取稳定性

30秒以上长语音测试,CAM特征提取稳定性 1. 为什么长语音测试对说话人识别系统至关重要 你有没有遇到过这样的情况:一段30秒的会议录音,想确认是不是某位同事的声音,但系统却提示"音频过长,建议截取3-10秒片段&q…

作者头像 李华
网站建设 2026/3/13 22:21:04

translategemma-27b-it快速部署:Ubuntu/Windows/Mac三平台Ollama兼容方案

translategemma-27b-it快速部署:Ubuntu/Windows/Mac三平台Ollama兼容方案 你是不是也遇到过这些情况: 看到一份中文技术文档配图,想快速理解但手动查词太慢;收到一张外文商品说明书截图,需要立刻知道关键参数&#x…

作者头像 李华
网站建设 2026/3/13 11:58:10

企业级文理医院预约挂号系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着医疗行业的快速发展,信息化管理已成为提升医院服务效率和质量的重要手段。传统的医院挂号方式存在排队时间长、信息不透明、资源分配不均等问题,亟需通过数字化手段优化流程。企业级文理医院预约挂号系统旨在解决这些问题,为患者提供…

作者头像 李华
网站建设 2026/3/13 23:40:02

DASD-4B-Thinking科研辅助:用Long-CoT能力加速文献综述逻辑链构建教程

DASD-4B-Thinking科研辅助:用Long-CoT能力加速文献综述逻辑链构建教程 1. 引言:科研工作者的新助手 科研文献综述是每个研究者必经的挑战。面对海量论文,如何快速梳理逻辑链条、建立知识体系?传统方法需要耗费大量时间阅读和整理…

作者头像 李华