【AI课程领学】第四课2/3:CNN 经典结构——从 LeNet 到 ResNet/MobileNet(结构演进逻辑 + PyTorch 复现骨架)
【AI课程领学】第四课2/3:CNN 经典结构——从 LeNet 到 ResNet/MobileNet(结构演进逻辑 + PyTorch 复现骨架)
·
【AI课程领学】第四课2/3:CNN 经典结构——从 LeNet 到 ResNet/MobileNet(结构演进逻辑 + PyTorch 复现骨架)
【AI课程领学】第四课2/3:CNN 经典结构——从 LeNet 到 ResNet/MobileNet(结构演进逻辑 + PyTorch 复现骨架)
欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup
大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可扫描博文下方二维码 “
学术会议小灵通”或参考学术信息专栏:https://ais.cn/u/mmmiUz
详细免费的AI课程可在这里获取→www.lab4ai.cn
1. 为什么要学经典结构?(不是背模型,而是学设计思想)
CNN 结构演进的本质是不断在三者之间权衡:
- 精度(表示能力)
- 速度(FLOPs 与并行效率)
- 参数量(存储与部署)
你理解了这些结构的“设计动机”,才会在新任务上做合理改造(尤其遥感/医学等非自然图像领域)。
2. LeNet:最早的 CNN 原型(Conv + Pool + FC)
- 结构思想:用卷积提特征,用池化降维,最后全连接分类
3. AlexNet:深度学习复兴的导火索
关键点(工程上仍重要):
- ReLU 代替 Sigmoid
- Dropout
- 数据增强
- GPU 训练
4. VGG:用“小卷积核”堆深度(3×3 的胜利)
- 设计哲学:重复的 3×3 卷积模块,结构规整好复用。
5. Inception:多尺度特征融合(分支结构)
- 思想:同一层并行 1×1、3×3、5×5(或分解)捕获不同尺度信息。
- 遥感中多尺度很常见(城市/农田/山地纹理尺度差异大),Inception 思想很实用。
6. ResNet:残差连接解决“越深越难训”(里程碑)
- 核心:

- 让网络学“残差”而不是完整映射,使梯度更容易传播。
7. MobileNet:轻量化 CNN 的代表(深度可分离卷积)
深度可分离卷积:
- Depthwise Conv:每个通道单独卷积
- Pointwise Conv:1×1 融合通道
显著减少参数与计算量,非常适合移动端部署。
8. PyTorch:实现一个 ResNet 风格模块(你可直接扩展成完整网络)
import torch
import torch.nn as nn
class BasicBlock(nn.Module):
def __init__(self, in_ch, out_ch, stride=1):
super().__init__()
self.conv1 = nn.Conv2d(in_ch, out_ch, 3, stride=stride, padding=1, bias=False)
self.bn1 = nn.BatchNorm2d(out_ch)
self.relu = nn.ReLU(inplace=True)
self.conv2 = nn.Conv2d(out_ch, out_ch, 3, stride=1, padding=1, bias=False)
self.bn2 = nn.BatchNorm2d(out_ch)
self.downsample = None
if stride != 1 or in_ch != out_ch:
self.downsample = nn.Sequential(
nn.Conv2d(in_ch, out_ch, 1, stride=stride, bias=False),
nn.BatchNorm2d(out_ch)
)
def forward(self, x):
identity = x
out = self.relu(self.bn1(self.conv1(x)))
out = self.bn2(self.conv2(out))
if self.downsample is not None:
identity = self.downsample(x)
out = self.relu(out + identity)
return out
# quick test
x = torch.randn(2, 64, 56, 56)
block = BasicBlock(64, 64)
y = block(x)
print(x.shape, "->", y.shape)
9. 经典结构在“非自然图像”(遥感/医学)的迁移建议
- 遥感多光谱:把第一层 in_channels=3 改为波段数
- 分辨率大:采用 patch 训练 + overlap 推理
- 多尺度:FPN/U-Net/Inception 思想更合适
- 标签噪声:使用更稳的损失(Huber、Dice)与正则化
10. 小结
- LeNet/AlexNet:奠基
- VGG:小核堆深度
- Inception:多尺度并行
- ResNet:可训练的深度
- MobileNet:部署友好
下一篇进入 CNN 压缩:剪枝、量化、蒸馏、低秩分解,以及如何落地。
更多推荐


所有评论(0)