【深度学习】典型的 CNN 网络

目录

一、LeNet-5

(1)LeNet-5 网络概览

(2)网络结构详解

(3)关键组件与数学原理

3.1 局部感受野与卷积运算

3.2 权重共享

3.3 子采样(Pooling)

3.4 激活函数

(4)训练细节

(5)优势与局限

(6)应用与影响

(7)对现代深度学习的启示

二、AlexNet

(1)网络结构概览

(2)各层详解

(3)关键创新与数学原理

(4)训练细节

(5)优势与局限

(6)对后续网络的影响

三、VGGNet

1、VGG16

(1)详细层级结构

(2)关键设计思想与数学原理

(3)训练细节

(4)优势与局限

(5)对后续网络发展的影响

2、VGG19

(1)网络整体架构概览

(2)分层细节

(3)设计动机与数学原理

(4)训练细节

(5)参数量与计算量

(6)优势与局限

(7)VGG19 在现代的地位与应用

四、GoolgeNet

1、GoolgeNet——Inception - v1

(1)网络整体架构概览

(2)Inception 模块详解

(3)辅助分类器(Auxiliary Classifiers)

(4)训练细节

(5)参数量与计算成本

(6)优势与局限

(7)对后续网络的影响

2、Inception 系列模型对比

(1)从 v1 到 v2:BatchNorm 与卷积分解引入

(2)从 v2 到 v3:更细粒度分解与模块优化

(3)v4:更深、更统一的模块设计

(4)Inception-ResNet:残差连接的融合

(5)综述对比与选型建议

3、GoolgeNet-Inception系列的后续改进:Xception、MobileNet、EfficientNet

(1)设计思想对比

(2)核心模块详解

2.1 深度可分离卷积(Depthwise Separable Convolution)

2.2 倒残差结构与线性瓶颈(MobileNet-v2)

2.3 SE 注意力模块(MobileNet-v3 & EfficientNet)

2.4 复合缩放(EfficientNet)

(3)架构配置与规模

(4)性能与效率对比

(5)适用场景与选型建议

小结

五、ResNet

1、ResNet 系列

(1)残差学习(Residual Learning)动机

(2)残差模块结构

2.1 基本残差块(Basic Block)

2.2 瓶颈残差块(Bottleneck Block)

(3)ResNet 系列典型变体

(4)网络总体流程

(5)训练细节

(6)优势与局限

(7)对后续网络的影响

(8)小结

2、ResNet 的改进(概述)

(1)结构改进

(2)宽度与基数(Cardinality)探索

(3)连接模式与特征复用

(4)注意力与自适应模块

(5)其他优化

(6)小结与选型建议


一、LeNet-5

        在机器学习(ML)向深度学习(DL)演进的过程中,卷积神经网络(CNN)作为处理图像的核心模型,一直占据着重要地位。1998 年,Yann LeCun 等人提出的 LeNet-5 成功将 CNN 应用于手写数字识别(MNIST),标志着深度学习在计算机视觉领域的开端。下一节,我们将全面剖析 LeNet-5 的设计理念、网络结构、训练方法及其对后续模型的深远影响。

(1)LeNet-5 网络概览

LeNet-5 是一种典型的五层卷积神经网络结构(不含输入层和输出层),包含三个卷积/激活层两个池化(子采样)层,以及后续的全连接层和输出层。其核心设计思想包括:

  • 局部感受野(Local Receptive Field):每个神经元只连接输入的局部区域,模拟生物视觉皮层结构。

  • 权重共享(Weight Sharing):同一特征图(feature map)上的所有神经元共享一组卷积核参数,大幅减少参数量。

  • 子采样(池化):空间降采样带来平移不变性,并减少计算量与过拟合风险。

(2)网络结构详解

输入:32×32 灰度图像(MNIST 原图 28×28,边缘补零至 32×32)

C1 – 卷积层
          • 卷积核:6 个 5×5
          • 输出尺寸: (32–5+1)=28 → 6 个 28×28
          • 参数量:6×(5×5)+6 偏置 = 156

S2 – 下采样(平均池化)层
          • 窗口:2×2,步长 2
          • 输出尺寸:6×14×14
          • 参数量:6×2 = 12(每个特征图的缩放和偏置参数)

C3 – 卷积层
          • 卷积核:16 个 5×5
          • 连接方式:每个输出特征图并非与 S2 全部 6 张输入图相连,而是设计局部连接,增强多样性
          • 输出尺寸: (14–5+1)=10 → 16×10×10
          • 参数量:约 1,216

S4 – 下采样层
          • 窗口:2×2,步长 2
          • 输出尺寸:16×5×5
          • 参数量:16×2 = 32

C5 – 卷积层(等同全连接)
          • 卷积核:120 个 5×5
          • 由于输入尺寸恰好 5×5,输出变为 120×1×1,可视为全连接
          • 参数量:120×(16×5×5)+120 偏置 = 48,120

F6 – 全连接层
          • 84 个神经元
          • 参数量:84×120+84 = 10,164

输出层
          • 10 个神经元(类别数)
          • 参数量:10×84+10 = 850

──────────
**总参数量:≈ 60,000**
 

(3)关键组件与数学原理

3.1 局部感受野与卷积运算
  • 卷积:对输入图像 x 与权重核 w 进行“滑动矩阵乘加”:

    (x * w)[i,j] = \sum_{u=-\left \lfloor k/2 \right \rfloor}^{ \left \lfloor k/2 \right \rfloor} \sum_{ v = - \left \lfloor k/2 \right \rfloor}^{ \left \lfloor k/2 \right \rfloor} x[i+u, j+v]\ ,w[u,v]
  • 好处:提取局部特征,保持参数量低。

3.2 权重共享
  • 同一特征图内各位置神经元共享一组权重核,减少参数,提高泛化。

3.3 子采样(Pooling)
  • LeNet-5 中采用平均池化(Average Pooling):

    y_{i,j} = \frac{1}{4}\sum_{u=0}^{1}\sum_{v=0}^{1} x_{2i+u,\,2j+v}
  • 并引入可训练的缩放因子与偏置 α, β:

    y_{i,j} = \alpha \cdot \text{avg}(x) + \beta
  • 作用:降维、降噪、获得平移不变性。

3.4 激活函数
  • 原论文中使用 sigmoid 或 tanh,现代改用 ReLU 以加速收敛、缓解梯度消失。

(4)训练细节

  1. 损失函数:原文用平方误差(MSE),对于分类任务现代更常用交叉熵(Cross‑Entropy)。

  2. 优化算法:LeNet-5 使用带动量(momentum)的随机梯度下降(SGD+momentum)。

  3. 正则化:参数共享与池化本身即具正则效果;现代可加 L2 或 Dropout。

  4. 数据增强(当时较少):现代常用旋转、平移、缩放、仿射变换等增强 MNIST 数据。

(5)优势与局限

优势

  • 端到端学习:无需手工设计特征,自动从数据中提取层级特征。

  • 参数高效:约 6 万参数,在当时计算资源有限的环境中可行。

  • 平移不变性:卷积与池化带来对图像平移、轻微扭曲的鲁棒。

局限

  • 网络较浅:仅 5 层特征抽取,限制了对复杂图像的建模能力。

  • 激活函数:sigmoid/tanh 易引起梯度消失。

  • 固定架构:缺乏现代批归一化(BatchNorm)、残差连接(ResNet)等技巧。

(6)应用与影响

  • 手写数字识别:LeNet-5 在 MNIST 上达到 99.2% 以上精度,显著优于当时方法。

  • 后续网络奠基:AlexNet(2012)、VGG、ResNet 等深层网络均基于“卷积+池化+全连接”的框架,不断叠加层数、引入新技术。

  • 工业应用:早期 OCR、车牌识别等均借鉴 LeNet 思路。

(7)对现代深度学习的启示

  1. 特征层级化:从边缘→纹理→形状的分级抽取思想沿用至今。

  2. 参数共享:高效减少参数的核心理念。

  3. 网络结构设计:LeNet-5 完整展现了“Conv→Pool→Conv→Pool→FC→Output”的典型模式,仍是 CNN 设计的基石。

  4. 可扩展性:在深度、宽度、激活函数、正则化、优化等方面的改进,均建立在 LeNet-5 思想之上。

二、AlexNet

        AlexNet 由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 于 2012 年提出,是第一款在 ImageNet 规模数据集(ILSVRC‑2012)上将错误率从 26% 降至 15% 的深度卷积神经网络。它的成功标志着深度学习在计算机视觉领域的全面爆发,也奠定了现代深度卷积网络设计的诸多核心思路。

(1)网络结构概览

AlexNet 可视为一个 “5 层卷积 + 3 层全连接” 的八层前馈网络(不含输入层、输出 Softmax 层),主要特点包括:

  • 输入224×224×3 彩色图像(原文中先裁切为 256×256,再随机剪裁为 224×224)

  • 卷积层:Conv1→LRN→Pool1→Conv2→LRN→Pool2→Conv3→Conv4→Conv5→Pool5

  • 全连接层:FC6 → Dropout → FC7 → Dropout → FC8 → Softmax

总体参数量约 6 千万,计算量巨大,原文借助 2 块 GPU 并行训练。

(2)各层详解

层次配置输出尺寸参数量(约)
输入224×224×3 彩色图像224×224×3
Conv196 个 11×11 卷积核,步长 4,无填充;ReLU;LRN;3×3 最大池化,步长 255×55×9634.9K
Conv2256 个 5×5 卷积核,填充 2;ReLU;LRN;3×3 最大池化,步长 227×27×256614.4K
Conv3384 个 3×3 卷积核,填充 1;ReLU27×27×384885.7K
Conv4384 个 3×3 卷积核,填充 1;ReLU27×27×3841.33M
Conv5256 个 3×3 卷积核,填充 1;ReLU;3×3 最大池化,步长 213×13×256884.9K
FC6全连接,4096 单元;ReLU;Dropout(0.5)409637.75M
FC7全连接,4096 单元;ReLU;Dropout(0.5)409616.78M
FC8全连接,1000 单元(分类数);Softmax10004.10M
总计≈ 60.9M

LRN(Local Response Normalization):对局部相邻通道做“亮度竞争”,帮助增强泛化;
Dropout:随机丢弃一半神经元,防止过拟合。

(3)关键创新与数学原理

  1. ReLU 激活

    f(x) = \max(0,\,x)

    相较于 sigmoid/tanh,ReLU 收敛更快、缓解梯度消失。

  2. 局部响应归一化 (LRN)
    对通道维度进行归一化:

    b_{x,y}^i = a_{x,y}^i \bigg/\Big(k + \alpha \sum_{j=\max(0,i-n/2)}^{\min(N-1,i+n/2)} (a_{x,y}^j)^2\Big)^\beta

    促使高响应位置“抑制”周围低响应,形成竞争机制。

  3. 重叠池化 (Overlapping Pooling)
    池化核 3×3,步长 2(而非典型的 2×2、步长 2),减轻过拟合、提升泛化。

  4. Dropout
    在全连接层每次前向传播时,以 0.5 概率随机“屏蔽”神经元,抑制 co‑adaptation。

  5. 数据增强

    • 随机水平翻转

    • 随机裁剪(从 256×256 裁为 224×224)

    • PCA 颜色抖动:对 RGB 三通道做主成分分析,加入微小扰动

  6. 双 GPU 并行
    将模型“切分”在两块 GPU 上:

    • Conv1、Conv3、Conv5 在两个 GPU 上各 48 个 filter

    • Conv2、Conv4 的 filter 跨 GPU 互连
      加速正向/反向传播,缓解显存限制。

(4)训练细节

  • 优化器:SGD + momentum(动量系数 0.9)

  • 批大小:128

  • 初始学习率:0.01,每当验证误差不下降时 手动 降为原来 1/10

  • 权重衰减:0.0005(L2 正则化)

  • 训练轮数:约 90 个 epoch

  • 训练时间:在两块 NVIDIA GTX 580 GPU 上约 5–6 天

(5)优势与局限

优势

  • 大规模 ImageNet 验证:首个深度 CNN 在 1000 类大型数据集上取得突破。

  • 设计模块化:ReLU、Dropout、LRN、重叠池化等技巧,后来广泛沿用。

  • 开源推动:模型与代码公开,推动社区复现与改进。

局限

  • 参数量大:≈ 6,000 万,存储与计算成本高。

  • 归一化方式过时LRN 效果有限,后续被 BatchNorm 替代

  • 架构较宽浅:仅 8 层,深度不足;且所有卷积核大小预设,不同尺度特征提取不足。

(6)对后续网络的影响

  • VGG/GoogleNet:沿用“Conv→Pool”模块化设计,探索更深(16–22 层)与更窄(3×3 卷积)结构。

  • BatchNorm、ResNet:针对梯度消失与训练深度的改进,最终实现上百层网络可训练。

  • 模型压缩与加速:对大规模模型的需求催生剪枝、量化、轻量化网络(MobileNet 等)。

三、VGGNet

        VGGNet 是由 Oxford 大学视觉几何组(Visual Geometry Group,简称 VGG)于 2014 年提出的深度卷积神经网络,论文标题为 “Very Deep Convolutional Networks for Large‑Scale Image Recognition”。它在 ILSVRC‑2014 比赛中以优异表现(Top‑5 错误率 7.3%)获得第二名,同时其简洁的网络设计思路和可复现性,对后续深层网络研究产生了深远影响。

网络总体架构概览:

VGGNet 以“堆叠同尺寸小卷积核”著称,主要有两种变体:

  • VGG16:13 个卷积层 + 3 个全连接层,共 16 层

  • VGG19:16 个卷积层 + 3 个全连接层,共 19 层

核心设计原则:

  1. 连续使用多个 3×3 卷积核(代替大尺寸卷积,如 5×5、7×7),保持感受野相同的同时增加非线性表达;

  2. 每两到三层卷积后接一个 2×2 最大池化,逐步降低空间分辨率;

  3. 全连接层放在网络末端,用于分类。

1、VGG16

(1)详细层级结构

以 VGG16 为例,其网络结构可分为 5 个卷积块(Block)和 3 个全连接层:

Block层次输出尺寸通道数说明
Block1Conv3×3×64 ×2 → MaxPool224×224 → 112×11264两个 3×3 卷积后下采样
Block2Conv3×3×128 ×2 → MaxPool112×112 → 56×56128
Block3Conv3×3×256 ×3 → MaxPool56×56 → 28×28256三个卷积层
Block4Conv3×3×512 ×3 → MaxPool28×28 → 14×14512
Block5Conv3×3×512 ×3 → MaxPool14×14 → 7×7512
FCFC‑4096 → FC‑4096 → FC‑1000 (Softmax)1×1两层大尺寸全连接 + 最后一层分类输出
  • 卷积核均为 3×3,步长 1,填充 1;

  • 池化窗口 2×2,步长 2;

  • 激活函数:ReLU;

  • 总参数量:VGG16 约 138M,VGG19 约 144M。

(2)关键设计思想与数学原理

  1. 多层小卷积等效大卷积

    • 两个连续 3×3 卷积层的等效感受野为 5×5;三个连续 3×3 的等效感受野为 7×7。

    • 小卷积核参数少、计算量低,同时中间多次 ReLU 增加了非线性表达能力。

  2. 深度网络的可训练性

    • 相比 AlexNet(8 层)和 ZFNet(8 层),VGGNet 将深度提高至 16–19 层。

    • ReLU 激活、合适的初始化(Xavier、He 初始化)以及小批量 SGD,使得深层网络收敛成为可能。

  3. 统一架构简化实现

    • 全网络采用相同的卷积核大小和池化方式,代码实现简单,易于复现和扩展。

    • 多数后续工作(如 ResNet、Inception)都在此基础上进行改进。


(3)训练细节

  • 数据预处理

    • 输入图像先缩放到 256×256,再在训练时随机裁剪出 224×224;

    • 随机水平翻转;

    • 均值归一化(减去 ImageNet 训练集的 RGB 均值)。

  • 优化器

    • SGD + momentum(动量 0.9);

    • 初始学习率 0.01,每隔 30 个 epoch 降为原来的 1/10;

    • 批大小 256;

    • 训练周期约 74 万次迭代(约 90 epochs 总共耗时数周)。

  • 正则化

    • 权重衰减(L2 正则)系数 5e‑4;

    • Dropout(0.5)仅应用于全连接层。


(4)优势与局限

优势

  • 深度与性能:在 ImageNet 上取得优异分类效果,为深度网络可行性提供了实证。

  • 设计简单易扩展:卷积块模块化,可灵活堆叠;代码实现与复现成本低。

  • 小卷积核组合:减少参数,提升非线性表达。

局限

  • 模型体积大:138M 参数对存储与内存要求高,不适合移动端部署。

  • 计算量大:推理与训练耗时较长。

  • 缺少归一化层:未使用 BatchNorm,后续往往需要在其基础上加入 BN 层以加快收敛并提高精度。


(5)对后续网络发展的影响

  1. 批归一化(Batch Normalization)

    • Ioffe & Szegedy(2015)提出 BatchNorm,可插入到 VGG 卷积/全连接层后,大幅加速收敛并提升精度。

  2. 更深与更轻量化网络

    • ResNet(2015)引入残差连接,成功训练百层以上深度;

    • GoogleNet/Inception(2014–2016)通过 Inception 模块提高宽度与效率;

    • MobileNet、ShuffleNet(2017+)等轻量化网络关注资源受限场景。

  3. 特征提取与迁移学习

    • VGG 的卷积块常被作为“通用特征提取器”,在目标检测(Faster R‑CNN)、语义分割(FCN)等任务中作为 backbone 广泛使用。

2、VGG19

        VGG19 是 Oxford 大学 Visual Geometry Group(VGG)在 2014 年提出的“Very Deep Convolutional Networks for Large‑Scale Image Recognition”一文中的一种变体。相比 VGG16,VGG19 在每个卷积块中多堆叠了一层 3×3 卷积,从而将网络深度提高到 19 层(不含输入层与输出 Softmax 层)。其简洁而统一的设计,使得深度卷积网络在当时取得了极佳性能,也为后续网络架构提供了范式。

(1)网络整体架构概览

VGG19 主要由 5 个卷积模块(Block)和 3 个全连接层(FC)组成:

  • 输入224×224×3 彩色图像

  • Block1:2 层 3×3 卷积 → 最大池化

  • Block2:2 层 3×3 卷积 → 最大池化

  • Block3:4 层 3×3 卷积 → 最大池化

  • Block4:4 层 3×3 卷积 → 最大池化

  • Block5:4 层 3×3 卷积 → 最大池化

  • FC6:4096 单元全连接 → ReLU → Dropout(0.5)

  • FC7:4096 单元全连接 → ReLU → Dropout(0.5)

  • FC8:1000 单元全连接 → Softmax

整网约 19 层(不含输入与 Softmax 层),总参数量约 144M,在 ILSVRC‑2014 上获得 Top‑5 错误率 7.3%。


(2)分层细节

模块层数输出尺寸通道数说明
Block1Conv3×3×64 ×2 → Pool2×2224→11264两个卷积后下采样
Block2Conv3×3×128 ×2 → Pool2×2112→56128
Block3Conv3×3×256 ×4 → Pool2×256→28256四个连续 3×3
Block4Conv3×3×512 ×4 → Pool2×228→14512
Block5Conv3×3×512 ×4 → Pool2×214→7512
FC6FC‑4096 → ReLU → Dropout1×14096Dropout 概率 0.5
FC7FC‑4096 → ReLU → Dropout1×14096
FC8FC‑1000 → Softmax1×11000ImageNet 1000 类别
  • 卷积:均为 3×3、步长 1、填充 1;

  • 最大池化:2×2、步长 2;

  • 激活:ReLU;

  • 丢弃:仅在全连接层中使用 Dropout(0.5)。


(3)设计动机与数学原理

  1. 堆叠小卷积核

    • 两层连续的 3×3 等效于一次 5×5 感受野,三层等效 7×7。

    • 小核带来参数更少(3×3×C×C’ vs. 7×7×C×C’),且每层后插入 ReLU 增加非线性。

  2. 统一架构简化实现

    • 全网卷积核、池化、激活方式一致,代码极其简洁可复现。

    • 容易堆叠更深层次,推动了深度网络可行性研究。

  3. 深度表示能力

    • 随着深度提高,网络学习更抽象、更复杂的特征。但深度增加也带来梯度消失与训练难度,需要合适的初始化与优化策略。


(4)训练细节

  • 数据预处理

    • 图像缩放到 256×256,再随机裁剪 224×224;

    • 随机水平翻转;

    • 减去 ImageNet 训练集 RGB 均值。

  • 优化器

    • SGD + momentum(0.9);

    • 初始学习率 0.01,每隔 30 个 epoch 降为原来 1/10;

    • 批大小 256;

    • 权重衰减(L2 正则) 5e‑4。

  • 训练时间

    • 多 GPU 并行训练,约需数周,视硬件性能而定。


(5)参数量与计算量

  • 参数量:约 144M(VGG16 为 138M),主要集中在全连接层(≈123M),卷积层约 20M。

  • 计算量:由于深度与通道数大,卷积操作浮点运算极多,推理耗时较长,不利于实时和资源受限环境。


(6)优势与局限

优势

  • 性能优异:在当时 ImageNet 上与 VGG16、GoogleNet 共同位列前茅。

  • 设计简单:易于理解和实现,成为后续研究的基准模型。

  • 迁移学习效果好:前面多层卷积块可作为通用特征提取器,广泛用于检测、分割等任务。

局限

  • 资源消耗大:144M 参数和深层结构导致存储与内存占用高,推理速度慢。

  • 缺少归一化:未使用 BatchNorm,训练深度网络较困难;后来常在 VGG 基础上加入 BN。

  • 冗余特征:连续四层相同通道卷积存在信息冗余,后续网络通过瓶颈结构、残差连接等加以改进。


(7)VGG19 在现代的地位与应用

  1. 基准模型:仍被用作研究新算法时的对照网络。

  2. 特征提取器:在目标检测(Faster R‑CNN、Mask R‑CNN)、语义分割(FCN、U-Net)等领域大量采用 VGG19 预训练权重。

  3. 网络改进研究

    • 引入 BatchNorm 形成 VGG19‑BN,加速训练并略微提升精度;

    • 用 1×1 卷积或瓶颈层减少计算量(e.g. SqueezeNet、ResNet)。

四、GoolgeNet

        GoogLeNet 是由 Szegedy 等人在 2014 年提出的 Inception 系列第一版网络,论文题为 “Going Deeper with Convolutions”。它在 ILSVRC‑2014 比赛中以 6.7% 的 Top‑5 错误率夺冠,同时参数量仅约 6.8M,远低于当时常见的 VGG(138M)和 AlexNet(60M)。GoogLeNet 的成功标志着“深度与宽度并重”与“高效结构设计”成为卷积网络新方向。

1、GoolgeNet——Inception - v1

(1)网络整体架构概览

GoogLeNet 总体深度 22 层(不含池化层和辅助分类器),可分为以下部分:

  1. 初始卷积层与池化层:提取低级特征并快速降维

  2. 五个 Inception 模块组合:每个模块内部并行多尺度卷积与降维

  3. 全局平均池化 + Softmax:用全局特征直接分类,抛弃大规模全连接层

  4. 两个辅助分类器:插入中间层,缓解梯度消失并作训练正则化

网络总体结构示意:

输入 224×224×3
→ Conv(7×7, stride=2) → MaxPool(3×3,2)
→ Conv(1×1) → Conv(3×3) → MaxPool(3×3,2)
→ [Inception ×3] → MaxPool(3×3,2)
→ [Inception ×5] → MaxPool(3×3,2)
→ [Inception ×2]
→ 全局平均池化(7×7) → Dropout(0.4) → FC(1000) → Softmax

(2)Inception 模块详解

Inception 模块的核心思想是在同一层并行使用多种感受野(1×1、3×3、5×5 卷积和 3×3 池化),并通过 1×1 卷积在每路上进行通道降维,达到“宽度”与“深度”兼顾、参数高效的效果。

               → 1×1 Conv (降维) → 1×1 Conv → │输入 → 1×1 Conv (降维) → 3×3 Conv → │├→ 1×1 Conv (降维) → 5×5 Conv →│└→ 3×3 MaxPool → 1×1 Conv (降维) →
  • 1×1 卷积

    • 用于快速降低通道数,减少后续大核(3×3、5×5)计算

    • 增加网络非线性

  • 多尺度卷积并行

    • 同时捕捉局部与全局信息

  • 池化分支

    • 保留领域不变性

每个 Inception 模块输出通道数视具体版本而定,整个网络通过堆叠多级 Inception 模块实现 22 层深度。


(3)辅助分类器(Auxiliary Classifiers)

在第 4、7 两个 Inception 模块后各接一个小型卷积→全局平均池化→全连接→Softmax 分支:

  • 目的

    • 在训练过程中提供额外的梯度信号,缓解深层网络梯度消失

    • 作轻度正则化,防止中间层过拟合

  • 权重:Auxiliary loss 占总 loss 的 0.3;测试时舍弃,仅保留主分支。


(4)训练细节

  • 数据预处理与增强

    • 图像缩放至 256×256,再随机裁剪 224×224;

    • 随机水平翻转;

    • PCA 颜色抖动(与 AlexNet 类似)。

  • 优化器

    • SGD + momentum(0.9);

    • 初始学习率 0.01,每隔 30 万次迭代降为原来的 1/3;

    • 权重衰减 0.0002;

    • 批大小 128;

    • 训练约 90 万次迭代。

  • 正则化

    • Dropout(0.4) 仅在最后全局平均池化后使用;

    • Auxiliary classifiers 自身亦含 Dropout(0.7)。


(5)参数量与计算成本

项目数值
总参数量≈ 6.8M
浮点运算量 (FLOPs)≈ 1.5B(十亿级)
特征图尺寸224 → 112 → 56 → 28 → 14 → 7
GPU 内存需求约 2–3 GB

相比同时期的 VGG(138M)和 AlexNet(60M),GoogLeNet 在参数量上减少 90%+,同时保持更深的结构。


(6)优势与局限

优势

  1. 参数高效:1×1 降维显著减少参数。

  2. 多尺度特征融合:并行卷积捕捉不同大小的图案。

  3. 深度可达 22 层:在当时可训练更深网络。

  4. 辅助分类器:提高训练速度与稳定性。

局限

  1. 结构复杂:模块内部多分支,代码与调试难度大。

  2. 计算开销依旧可观:虽参数少但 FLOPs 高,不利于实时部署。

  3. 无批归一化:Inception v1 未使用 BatchNorm,训练对超参较敏感。


(7)对后续网络的影响

  • Inception 系列

    • v2/v3 引入 BatchNorm、Factorization(分解大卷积);

    • v4/v5 融合残差连接,形成 Inception‑ResNet。

  • ResNet

    • Inspired by 深度可训练性与辅助分类器,提出残差单元(Residual Block)使网络可达百层。

  • MobileNet/ShuffleNet

    • 继承 1×1 降维与分组卷积思想,进一步轻量化。

  • 自动化结构搜索(NAS)

    • Inception 模块的“多分支”思想启发 NAS 方法自动搜索最佳分支组合。

2、Inception 系列模型对比

以下表格与分析对比了 Inception 系列主要版本(v1/v2/v3/v4 及 Inception-ResNet)的设计思想、模块改进、参数规模与性能提升。随后给出逐项详解。

特性/版本Inception v1<br>(GoogLeNet)Inception v2Inception v3Inception v4Inception-ResNet v1/v2
首次发表2014 年
“Going Deeper…”
2015 年
“Batch Norm…”
2015 年
“Rethinking…”
2016 年
“Inception v4…”
2016 年
“Inception-ResNet…”
基本模块原始 Inception
4 支路
加入 BatchNorm
降维 Factor
进一步 Factorize 卷积简化版 Inception-v3 模块在 v3 基础上加入残差连接
卷积分解(Factorization)5×5→两个 3×3;3×3→1×3+3×1进一步将 3×3 分解为 1×3+3×1沿用 v3,同时微调模块宽度同 v4,同时使用残差合并
归一化(Normalization)在几乎所有卷积后加入 BatchNorm同 v2同 v2同 v2
辅助分类器存在两路
训练时使用
保留但权重微调去除辅助分支去除辅助分支去除辅助分支
池化策略普通 3×3 最大池化同 v1同 v1同 v1同 v1
全局池化 + FC全局平均池化 → Dropout → FC同 v1同 v1同 v1同 v1
深度(大约层数)22 层~55 层~75 层~80 层~80 层
参数量~6.8M~11M~23M~42M~55M
Top-5 ImageNet(单裁剪)6.7%~5.6%~5.6%~5.5%~5.5%
主要创新点多尺度并行 + 1×1 降维BatchNorm + 卷积分解更细粒度卷积分解 + 新模块统一模块设计 + 更深网络残差连接加速收敛 + 提升性能

(1)从 v1 到 v2:BatchNorm 与卷积分解引入

  • Batch Normalization:在几乎所有卷积层后加入 BN,大幅加快收敛、提高学习率容忍度;

  • 卷积分解(Factorization)

    • 将原始模块中的 5×5 卷积分解为两个串联的 3×3,减少参数与计算;

    • 将某些 3×3 分支再分解为 1×3 + 3×1,进一步降低计算开销。

效果:训练更稳定,Top-5 错误率从 6.7% 降至约 5.6%;参数量增加到 ~11M,但计算效率更高。


(2)从 v2 到 v3:更细粒度分解与模块优化

  • 更细粒度分解:对所有 3×3 卷积引入 1×3+3×1 分解;

  • 模块重构:Inception-v3 重新设计了各个 Inception 模块(A/B/C 类型),细分通道分配策略;

  • 辅助分类器:v3 中逐步淡化,训练时可选加入,评估阶段通常舍弃。

效果:网络深度增至 ~75 层,参数量 ~23M,Top-5 ≈5.6%,精度和计算效率均优于 v2。


(3)v4:更深、更统一的模块设计

  • 统一模块:将 Inception-v3 中不同类型模块统一为三种 Inception-A/B/C,更易复现;

  • 更深网络:整个网络深度扩展到 ~80 层;

  • Removed Technical Debt:去除少量历史冗余(如部分辅助分支),仅保留必要结构。

效果:参数量 ~42M,Top-5 进一步微小提升至 ≈5.5%,但训练与推理成本增大。


(4)Inception-ResNet:残差连接的融合

  • 残差连接(Residual Connection):在每个 Inception 模块输出添加短路分支(identity mapping),借鉴 ResNet “恒等”思想;

  • 加速收敛:残差有助于缓解梯度消失,使得更深网络训练更高效;

  • 版本区别

    • v1:轻量级残差改造,参数 ~55M;

    • v2:批量归一化、模块微调,精度略优。

效果:在 v4 精度基础上,收敛速度更快,训练更稳定。Top-5 ≈5.5%,但参数与计算量进一步增加。


(5)综述对比与选型建议

需求场景建议版本理由
资源受限部署Inception v1参数最少(≈6.8M),推理轻量
高精度分类Inception v3/v4精度与效率平衡;v3 参数较少(≈23M),v4 精度略优但更重
训练速度优先Inception-ResNet残差连接加速收敛,适合超深网络训练
研究与改进基线v3 + ResNet 混合模块化与性能成熟,易于在此基础做新颖结构探索
迁移学习通用特征提取v3/v4中层特征丰富,模块设计规范,社区支持广泛

3、GoolgeNet-Inception系列的后续改进:Xception、MobileNet、EfficientNet

        下面,我们从网络设计思想核心模块架构配置性能对比适用场景五个维度,详细分析 Xception、MobileNet(含 v1/v2/v3)与 EfficientNet(B0–B7)三大轻量级与高效网络。

(1)设计思想对比

网络核心思想
Xception“Extreme Inception”——将 Inception 模块中多分支卷积分解为深度可分离卷积(Depthwise Separable Convolution)
MobileNet轻量化全卷积:
  • v1:标准深度可分离卷积 + 宽度/分辨率乘子

  • v2:倒残差结构 + 线性瓶颈

  • v3:NAS 自动搜索 + SE 注意力 | | EfficientNet| 复合缩放(Compound Scaling)
    按比例同时缩放网络深度、宽度、输入分辨率,基于 NAS 搜索得到基准 B0,再生成 B1–B7 |


(2)核心模块详解

2.1 深度可分离卷积(Depthwise Separable Convolution)
  • Depthwise:对每个输入通道独立应用 a×a 卷积

  • Pointwise:紧接 1×1 卷积将通道混合

  • 参数与计算量

    • 普通卷积:D_K^2 · M · N

    • 可分离卷积:D_K^2 · M + M · N
      参数量、FLOPs 减少约 \displaystyle\frac{1}{N} + \frac{1}{D_K^2}

2.2 倒残差结构与线性瓶颈(MobileNet-v2)
  • 扩张层:先用 1×1 卷积扩展通道;

  • Depthwise 卷积:3×3;

  • 线性投影:1×1 减少通道;

  • 跳跃连接:在通道和空间尺寸一致时实施残差。

2.3 SE 注意力模块(MobileNet-v3 & EfficientNet)
  • Squeeze:全局平均池化得到通道统计;

  • Excitation:两层 FC→Sigmoid,生成每通道缩放系数;

  • Scale:对原特征图通道加权。

2.4 复合缩放(EfficientNet)
  • 定义系数 \phi,使深度 d = \alpha^\phi,宽度 w = \beta^\phi,分辨率 r = \gamma^\phi,并满足 \alpha\cdot\beta^2\cdot\gamma^2 \approx 2 。

  • 在基准 B0 上依次生成 B1–B7。


(3)架构配置与规模

网络/版本参数量FLOPsImageNet Top-1<br>(单裁剪)关键结构
Xception~22.9M~8.4B79.0%36× depthwise sep conv + 14× pointwise conv
MobileNet-v1~4.2M~569M70.6%Depthwise sep conv + width/res multipliers
MobileNet-v2~3.4M~300M72.0%Inverted ResBlock + linear bottleneck
MobileNet-v3-Large~5.4M~219M75.2%NAS 搜索模块 + SE
EfficientNet-B0~5.3M~390M77.1%基准复合缩放网络
EfficientNet-B4~19M~4.2B82.9%φ=4 复合缩放
EfficientNet-B7~66M~37B84.3%φ=7 复合缩放

注:FLOPs 均指单次前向推理的乘加运算量;Top-1 精度基于 ImageNet 验证集。


(4)性能与效率对比

  1. 计算效率(FLOPs)

    • 最低:MobileNet-v2 (~300M)

    • 中等:MobileNet-v1/v3、EfficientNet-B0 (~400–600M)

    • 最高:Xception (~8.4B)、EfficientNet-B4/B7

  2. 参数规模

    • 极小:MobileNet-v2 (~3.4M)

    • :MobileNet-v1/v3、EfficientNet-B0 (~4–6M)

    • 中等:Xception (~23M)、EfficientNet-B4 (~19M)

    • :EfficientNet-B7 (~66M)

  3. 精度(Top-1)

    • 入门级:MobileNet-v1 (~70.6%)

    • 中档:MobileNet-v2 (~72.0%)、MobileNet-v3 (~75.2%)

    • 高级:Xception (~79.0%)、EfficientNet-B0 (~77.1%)

    • 顶级:EfficientNet-B4/B7 (82.9% / 84.3%)


(5)适用场景与选型建议

应用场景推荐网络理由
极致轻量化部署MobileNet-v2参数与计算量最小,适合算力极低的嵌入式设备
移动端与边缘端MobileNet-v3 / EfficientNet-B0在有限资源下兼顾精度,SE 注意力和复合缩放提升了表示能力
通用高效特征提取Xception / EfficientNet-B0Xception 多层深度可分离卷积能提取丰富特征;EfficientNet-B0 综合效率与精度最佳
高精度离线推理EfficientNet-B4 / B7高精度需求、计算资源充足时优选
研究新架构对比基线Xception / EfficientNet经典模块化设计与复合缩放策略,常见于论文对比基线

小结

  • Xception:将 Inception 极端化,全面引入深度可分离卷积,性能优异但计算量大;

  • MobileNet 系列:轻量化代表,从 v1 的宽度/分辨率乘子到 v2/v3 的结构改进(倒残差、SE),适合移动与边缘场景;

  • EfficientNet 系列:最系统的复合缩放策略,在各资源预算下取得最优精度/效率平衡,是当前轻量化高性能网络的旗舰。

五、ResNet

        Residual Network(ResNet)由 Kaiming He 等人在 2015 年提出,论文题为 “Deep Residual Learning for Image Recognition”。它在 ILSVRC-2015 比赛中以显著优势(Top-5 错误率 3.57%)夺冠,解决了“网络加深反而性能下降”的难题,开启了百层以上超深网络的时代。

1、ResNet 系列

(1)残差学习(Residual Learning)动机

  • 随着网络深度增加,传统的“堆叠卷积→ReLU”结构出现 退化现象:更深网络反而在训练/验证上损失更高。

  • ResNet 提出残差模块(Residual Block),让网络学习残差映射

    \mathcal{F}(x) := \mathcal{H}(x) - x \quad\Longrightarrow\quad \mathcal{H}(x) = \mathcal{F}(x) + x

    通过“旁路”直连(identity shortcut),保证主分支至少能学习到恒等映射 x,从而缓解退化、加速收敛。


(2)残差模块结构

2.1 基本残差块(Basic Block)

用于 ResNet-18/34,结构如下:

输入 x↓
Conv3×3, C→C, stride s↓
BatchNorm → ReLU↓
Conv3×3, C→C, stride 1↓
BatchNorm↓
+ Shortcut(x)  ——→ ReLU↓
输出
  • Shortcut 分支:当输入输出通道或空间尺寸不一致时,用 1×1 卷积 + BatchNorm 做对齐;否则直接恒等映射。

  • 参数量:每个 Basic Block ≈ 2×(3×3×C×C) 卷积参数。

2.2 瓶颈残差块(Bottleneck Block)

用于 ResNet-50/101/152,将 3×3 卷积分为三段:

输入 x↓
1×1 Conv, C→C/4  ↓
BatchNorm → ReLU↓
3×3 Conv, C/4→C/4, stride s↓
BatchNorm → ReLU↓
1×1 Conv, C/4→C  ↓
BatchNorm↓
+ Shortcut(x)  ——→ ReLU↓
输出
  • 思路:先降维(1×1),再做计算(3×3),再升维(1×1),大幅减少计算量。

  • 参数量:每个 Bottleneck Block ≈  C\times\frac C4 + 3^2\times(\frac C4)^2 + \frac C4\times C 总和。


(3)ResNet 系列典型变体

版本层数Block 类型每个 Stage Block 数量参数量Top-1 ImageNet 精度
ResNet-1818Basic[2,2,2,2]11.7M~69.8%
ResNet-3434Basic[3,4,6,3]21.8M~73.3%
ResNet-5050Bottleneck[3,4,6,3]25.6M~76.2%
ResNet-101101Bottleneck[3,4,23,3]44.5M~77.4%
ResNet-152152Bottleneck[3,8,36,3]60.2M~78.3%
ResNet-200200Bottleneck[3,24,36,3]~64M~79.0%
  • Stage:表示网络中输出特征图尺寸相同的卷积块组,每组下第一个 block 可能 stride=2 以做空间降采样。

  • 深度越大,提取特征更丰富,但计算与内存开销也随之上升。


(4)网络总体流程

  1. 输入处理

    • 图像缩放到 256×256,随机裁剪 224×224;

    • 随机水平翻转;

    • 减去 ImageNet 训练集 RGB 均值;

  2. Stem 模块

    Conv7×7, stride=2, 64 filters
    → BatchNorm → ReLU
    → MaxPool3×3, stride=2
  3. 四个残差 Stage

    • Stage1:C=64 输出,块数视版本而定

    • Stage2:C=128, 第一个块 stride=2

    • Stage3:C=256, 第一个块 stride=2

    • Stage4:C=512, 第一个块 stride=2

  4. 全局平均池化 + 全连接

    GlobalAvgPool → FC (1000) → Softmax

(5)训练细节

  • 优化器:SGD + momentum(0.9)

  • 初始学习率:0.1,每隔 30 个 epoch 降为 1/10

  • 批大小:256

  • 权重衰减:1e-4

  • 训练周期:90 epoch


(6)优势与局限

优势

  1. 可训练超深网络:残差连接有效解决退化与梯度消失问题,使网络深度可扩展到上百层。

  2. 模块化设计:Basic 与 Bottleneck 两种可选结构,自由组合,易于扩展与改进。

  3. 迁移学习基石:ResNet 各版本预训练权重广泛用于目标检测、分割、生成对抗等下游任务。

局限

  1. 计算与内存开销大:尤其是 ResNet-50 以上的变体,不适合资源极度受限场景。

  2. 信息冗余:恒等映射旁路虽保留信息,却也带来一定冗余,后续 DenseNet 等尝试更紧密特征复用。

  3. 网络宽度固定:每个 Stage 通道数翻倍,可能不是最优分配,后续网络(e.g. ResNeXt、Wide ResNet)对“宽度”做了更多探索。


(7)对后续网络的影响

  • Wide ResNet:将 Bottleneck Block 通道数加宽,减少深度,取得更快收敛与更高精度;

  • ResNeXt:在残差基础上引入“分组卷积+聚合”(cardinality)概念;

  • DenseNet:用“密集连接”替代恒等旁路,实现更强特征复用;

  • Res2Net、ResNeSt:细化残差单元内部结构、引入注意力机制,进一步提升性能。


(8)小结

        ResNet 通过残差学习的核心思想,成功击破“网络过深退化”难题,使得超深网络训练成为可能。其模块化、易扩展的设计,不仅在分类任务中大放异彩,更成为现代各类视觉任务的基础 Backbone。深入理解 ResNet 的原理与架构,有助于把握深度网络设计要点,并为创新高效网络提供重要启示。

2、ResNet 的改进(概述)

        以下是 ResNet 自问世以来,社区和产业界在“残差学习”基础上所作的主要改进与衍生网络,按改进思路可分为“结构改进”“宽度/基数探索”“连接模式创新”“注意力/自适应模块”四大类。


(1)结构改进

网络主要改进点
ResNet-v2“Pre-activation” 版本,将 BatchNorm→ReLU 置于残差分支前端,显著加快收敛并提高精度。
ResNet-D在空间降采样处(stride=2)对 shortcut 分支做轻量卷积填充、避免信息丢失,提升小物体识别性能。
Stochastic Depth对残差分支随机丢弃(训练时每个 block 以一定概率跳过),起到正则化作用,加速超深网络训练。
Pre-activation ResNeXt将 ResNeXt 与 Pre-activation 结合,兼具多分支聚合和更稳定的梯度流。

(2)宽度与基数(Cardinality)探索

网络关键思路
Wide ResNet减少深度、成倍增加每层通道数(width),在参数量相近下大幅提升精度;训练和推理更快。
ResNeXt引入“基数”(cardinality)概念:将单个残差块拆分为多路等结构并行、再聚合(类似分组卷积),比增加深度或宽度更有效。
Res2Net在单个残差块内部进一步拆分“多尺度”子特征流,并做交互融合,增强块内部的多尺度表示能力。

(3)连接模式与特征复用

网络创新点
DenseNet“密集连接”:每层与前面所有层直接连接,梯度和特征高度复用,大幅减少冗余、增强特征传递;参数量更少。
DualPathNet同时兼具 ResNet 的恒等旁路和 DenseNet 的密集连接,好处兼得——既有特征复用又保留残差学习优势。
PyramidNet随网络向深处,残差块的通道数以线性或指数方式累积增长,实现渐进式宽度提升,并结合预激活设计。

(4)注意力与自适应模块

网络模块/机制
SENet“Squeeze-and-Excitation”:对通道维度做全局信息压缩与两层 FC 生成通道权重,自适应重标定;2017 ILSVRC 冠军。
CBAM“Convolutional Block Attention Module”:在空间和通道两个维度依次做注意力,用更少开销提升表示能力。
SKNet“Selective Kernel”:用不同大小卷积核并行,再通过软注意力自适应融合各核响应,实现动态感受野选择。
ResNeSt在残差块中引入“Split-Attention”分支,将多路特征分组后自适应融合,并结合全局上下文或位置信息,效果优于 SENet/CBAM。

(5)其他优化

  • Shake-Shake / ShakeDrop:在 ResNeXt 基础上对多分支输出做随机加权或丢弃,进一步正则化。

  • EfficientNet-ResNet 混合:基于 EfficientNet 的复合缩放策略,使用残差或注意力模块,取得更优精度/效率平衡。

  • RegNet 系列:从可解释参数化设计出发,直接搜索一族高效、可伸缩的网络宽度与深度配置,并可结合残差结构。


(6)小结与选型建议

  1. 训练更深:选择 ResNet-v2、ResNet-D + Stochastic Depth,可轻松训练百层以上网络且更稳定。

  2. 资源受限Wide ResNet(参数量适中、精度高、推理快)或 ResNeXt(基数可调、通用性好)。

  3. 特征复用DenseNetDualPathNet,在轻量级场景中也能取得不俗性能。

  4. 注意力增强:在 ResNet 基础上加 SE/CBAM/Split-Attention 模块,可几乎“零”额外深度提升精度。

  5. 自动化设计:考虑 RegNetEfficientNet+Residual 混合模型,用可解释的设计原则或 NAS 产生的配置,平衡精度与效率。

以上网络针对「更深更宽」「更高效特征利用」「更智能注意力分配」等不同维度,对 ResNet 做出了多样化改进,可根据应用场景和算力预算酌情选择与组合。

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

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

相关文章

4.8/Q1,中山大学用NHANES:膳食烟酸摄入量与非酒精性脂肪肝之间的关联

文章题目&#xff1a;Association between Dietary Niacin Intake and Nonalcoholic Fatty Liver Disease: NHANES 2003-2018 DOI&#xff1a;10.3390/nu15194128 中文标题&#xff1a;膳食烟酸摄入量与非酒精性脂肪肝之间的关联&#xff1a;NHANES 2003-2018 发表杂志&#xf…

高效管理远程服务器Termius for Mac 保姆级教程

以下是 Termius for Mac 保姆级教程&#xff0c;涵盖安装配置、核心功能、实战案例及常见问题解决方案&#xff0c;助你高效管理远程服务器&#xff08;如Vultr、AWS等&#xff09;。 一、Termius 基础介绍 1. Termius 是什么&#xff1f; 跨平台SSH客户端&#xff1a;支持Ma…

理解数学概念——支集(支持)(support)

1. 支集(support)的定义 在数学中&#xff0c;一个实函数 f 的支集(support)是函数的不被映射到 0 的元素域(即定义域)的子集。若 f 的(定义)域(domain)是一个拓扑空间(即符合拓扑的集合)&#xff0c;则 f 的支集则定义为包含( f 的元素域中)不被映射到0的所有点之最小闭集…

Vue 3 Element Plus 浏览器使用例子

Element Plus 是一个基于 Vue 3 的流行开源 UI 库&#xff0c;提供了一系列的组件&#xff0c;帮助开发者快速构建现代化的用户界面。它的设计简洁、现代&#xff0c;包含了许多可定制的组件&#xff0c;如按钮、表格、表单、对话框等&#xff0c;适合用于开发各种 Web 应用。 …

SSR vs SSG:前端渲染模式终极对决(附 Next.js/Nuxt.js 实战案例)

一、引言&#xff1a;前端渲染模式的进化之路 随着互联网的发展&#xff0c;用户对于网页的加载速度和交互体验要求越来越高。前端渲染技术作为影响网页性能的关键因素&#xff0c;也在不断地发展和演进。从最初的客户端渲染&#xff08;CSR&#xff09;&#xff0c;到后来的服…

算法笔记.分解质因数

代码实现&#xff1a; #include<iostream> using namespace std; void breakdown(int x) {int t x;for(int i 2;i < x/i;i){if(t%i 0){int counts 0;while(t % i 0){t/i;counts;}cout << i <<" "<< counts<<endl;}}if(t >…

CUDA Error: the provided PTX was compiled with an unsupported toolchain

CUDA程序编译时生成的PTX代码与系统上的CUDA驱动版本不兼容 CUDA 编译器版本&#xff1a; CUDA 12.6 (nvcc 编译器版本) CUDA 驱动版本&#xff1a; CUDA 12.3 (nvidia-smi 驱动版本) 解决方法&#xff1a; 驱动版本下载参考&#xff1a;Your connected workspace for wiki…

计算机组成原理实验(7) 堆指令部件模块实验

实验七 堆指令部件模块实验 一、实验目的 1、掌握指令部件的组成方式。 2、熟悉指令寄存器的打入操作&#xff0c;PC计数器的设置和加1操作&#xff0c;理解跳转指令的实现过程。 二、实验要求 按照实验步骤完成实验项目&#xff0c;掌握数据打入指令寄存器IR1、PC计数器的…

2022 年 6 月大学英语四级考试真题(第 2 套)——阅读版——仔细阅读题

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;目前中南大学MBA在读&#xff0c;也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &…

磁盘文件系统

磁盘文件系统 一、磁盘结构1.1 认识一下基础的硬件设备以及真实的机房环境1.2 磁盘物理结构与存储结构1、磁盘物理结构2、磁盘的存储结构3、CHS地址定位4、磁盘的逻辑结构&#xff08;LBA&#xff09;5 磁盘真实过程5 CHS && LBA地址 二、理解分区、格式化1 引⼊"…

基于LangChain 实现 Advanced RAG-后检索优化(下)-上下文压缩与过滤

摘要 Advanced RAG 的后检索优化&#xff0c;是指在检索环节完成后、最终响应生成前&#xff0c;通过一系列策略与技术对检索结果进行深度处理&#xff0c;旨在显著提升生成内容的相关性与质量。在这些优化手段中&#xff0c;上文压缩与过滤技术是提升检索结果质量的重要手段。…

为什么 Vite 速度比 Webpack 快?

一、webpack会先进行编译&#xff0c;再运行&#xff0c;vite会直接启动&#xff0c;再按需编译文件。 首先看两张图&#xff0c;可以清晰的看到&#xff0c;上面的图是webpack编译过的&#xff0c;而下面的图是vite直接使用工程内文件。 二、区别于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概览二、优先级与运算顺序三、各类操作符的实例 一、操作符概览 操作符&#xff08;运算符&#xff09;的本质是函数的简记法 操作符不能脱离与它关联的数据类型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//输出1double a 5.0; double b…

C++设计模式:面向对象的八大设计原则之四

里氏替换原则&#xff08;Liskov Substitution Principle&#xff0c;LSP&#xff09;是面向对象设计中的一个重要原则&#xff0c;它指出子类必须能够替换它的基类&#xff0c;并且程序的行为不会发生改变。也就是说&#xff0c;在任何使用基类对象的地方&#xff0c;都可以透…

网络通信领域的基础或流行协议

一、TCP(传输控制协议) 1. 宏观介绍 TCP:全称“Transmission Control Protocol”——传输控制协议,是互联网最基础的传输协议之一。传输层协议,提供面向连接、可靠的字节流传输服务。它通过三次握手建立连接、四次挥手断开连接,确保数据有序、完整地传输作用:让两个设备…

【教学类-34-10】20250503(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+参考图灰色)

背景需求 2023年从网站上搜索拼图代码,陆续改良了圆形、三角形、菱形凹凸) 【教学类-34-05】20230425拼图(“圆角”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)_拼图的槽叫什么形状-CSDN博客文章浏览阅读1.1k次。【教学类-34-05】20230425拼图(“圆角”凹凸拼图)…

bellard.org‌ : QuickJS 如何使用 qjs 执行 js 脚本

参阅上一篇&#xff1a;Fabrice Bellard&#xff08;个人网站&#xff1a;‌bellard.org‌&#xff09;介绍 Fabrice Bellard&#xff08;个人网站&#xff1a;‌bellard.org‌&#xff09;是计算机领域最具影响力的程序员之一&#xff0c;其贡献跨越多个技术领域并持续推动开…

数据结构---

案例一 1.随机生成n个工人工时&#xff0c;100以内&#xff0c;工号分别为2021101到2021100n 2.以工时数为关键字分别使用选择排序、冒泡排序、插入排序进行升序排序。 3.把排序后的结果输出&#xff0c;包括工号工时数 4.比较三种算法对相同的n值数组排序所花的时间 代码如下&…

Python硬核革命:从微控制器到FPGA的深度开发指南

1. 重新定义硬件开发:Python的颠覆性突破 传统硬件开发长期被C/C++和Verilog/VHDL统治,但Python正通过两条路径改变这一格局: 1.1 微控制器领域的MicroPython革命 完整Python 3.4语法支持,运行在资源受限的MCU上(最低要求:64KB ROM,16KB RAM) 直接内存访问能力,突破…

基于springboot+vue的宠物共享平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 宠物寄养管理 宠…