• Pytorch实战教程(二十七)-基于ResNet模型实现猫狗分类


    0. 前言
    从 VGG11 到 VGG19,不同之处仅在于网络层数,一般来说,神经网络越深,它的准确率就越高。但并非仅增加网络层数,就可以获得更准确的结果,随着网络层数的增加可能会出现以下问题:

    梯度消失和爆炸:在网络层次过深的情况下,反向传播可能会面临梯度消失和爆炸的问题,导致训练网络时无法收敛
    过拟合:增加网络深度会带来更多的参数,如果数据样本过少或网络过于复杂,会导致网络过拟合,降低模型的泛化能力
    总之,在构建的神经网络过深时,有两个问题:前向传播中,网络的最后几层几乎没有学习到有关原始图像的任何信息;在反向传播中,由于梯度消失(梯度值几乎为零),靠近输入的前几层几乎没有任何梯度更新。
    深度残差网络 (ResNet) 的提出就是为了解决上述问题。在 ResNet 中,如果模型没有什么要学习的,那么卷积层可以什么也不做,只是将上一层的输出传递给下一层。但是,如果模型需要学习其他一些特征,则卷积层将前一层的输出作为输入,并学习完成目标任务所需的其它特征。

    1. ResNet 架构
    ResNet 通过残差结构解决网络过深时出现的问题,让模型能够训练得更深。经典的 ResNet 架构如下所示:


    残差结构的基本思想是:每一个残差块都不是直接映射输入信号到输出信号,而是通过学习残差映射来实现:
    F ( x ) = H ( x ) − x F(x)=H(x)−x
    F(x)=H(x)−x

    其中,x xx 是输入,H ( x ) H(x)H(x) 是一个表示所需映射的基本块,而 F ( x ) F(x)F(x

  • 相关阅读:
    工具类-Queue、Deque类总结
    【LVGL布局】柔性布局
    Java - 你真的明白单例模式怎么写了吗?
    YOLOV8损失函数改进:SlideLoss,解决简单样本和困难样本之间的不平衡问题
    pandas的使用
    函数调用堆栈详细过程
    LeetCode 每日一题——667. 优美的排列 II
    一文搞定注意力机制(Attention)
    tensorflow笔记
    js验证字符串是否是时间日期格式
  • 原文地址:https://blog.csdn.net/qq_19734597/article/details/134335503