资讯动态

阶段五(周 12–16)经典 CNN 模型与视觉 Transformer

发布时间:2026/8/20 17:44:58 来源:尧图企业网站定制
阶段五周 12–16经典 CNN 模型与视觉 Transformer实验环境华为云 m3CPU 版 PyTorch 2.13。所有脚本在m3真实运行结果为真实 stdout / 指标图存figures/。一、学习目标从零实现残差块ResNet与Mini-ResNet理解「跳跃连接」如何缓解退化。从零实现SENet(SE)与CBAM注意力模块并可视化注意力权重。从零实现Self-Attention / 多头 / 位置编码 / 掩码 / 因果解码并搭建ViT做 patch 嵌入前向验证。通过结构对比表掌握 AlexNet/VGG/Inception/1×1/ResNet/DenseNet/SqueezeNet 的演进脉络。二、经典模型结构演进对比表模型年份核心创新结构要点参数量级AlexNet2012首个深度 CNN 引爆 ImageNet5 卷积 3 全连接ReLU Dropout LRN双 GPU~60MVGG2014小卷积堆叠全程 3×3 卷积2 个 3×3 ≈ 1 个 5×5 但参数更少VGG16/19~138MInception (GoogLeNet)2014多分支并行同层用 1×1/3×3/5×5 池化并行再拼接1×1 降维省参~6.8M1×1 卷积—跨通道信息混合升/降通道数、加非线性、减少计算Inception 关键—ResNet2015残差/跳跃连接y F(x)x解决深层退化可训 50/101/152 层6M~60MDenseNet2017稠密连接每层与前面所有层相连x_l H([x0..x_{l-1}])特征复用~8MSqueezeNet2016极致压缩Fire 模块squeeze 1×1 expand 1×1/3×3参数量 0.5M~1.2M关键思想提炼网络从「更深更宽」(AlexNet/VGG) → 「更聪明的多尺度」(Inception) → 「更易训练」(ResNet 残差) → 「特征复用」(DenseNet) → 「更轻量」(SqueezeNet / 下面的 MobileNet 等)。三、从零实现 ResNetsrc/resnet_scratch.py残差块y F(x) x当通道数或分辨率变化时用 1×1 卷积对齐捷径。classBasicBlock(nn.Module):def__init__(self,in_ch,out_ch,stride1,downsampleNone):super().__init__()self.conv1nn.Conv2d(in_ch,out_ch,3,stride,1,biasFalse)self.bn1nn.BatchNorm2d(out_ch)self.conv2nn.Conv2d(out_ch,out_ch,3,1,1,biasFalse)self.bn2nn.BatchNorm2d(out_ch)self.downsampledownsample self.relunn.ReLU(inplaceTrue)defforward(self,x):identityx outself.relu(self.bn1(self.conv1(x)))outself.bn2(self.conv2(out))ifself.downsampleisnotNone:identityself.downsample(x)returnself.relu(outidentity)# 残差连接真实运行结果同阶段四的合成数据保证时限内可复现MiniResNet 参数量: 174,970 forward 形状验证: input (2, 1, 28, 28) - logits (2, 10) epoch 1/3 train_loss0.2509 train_acc0.9607 test_acc0.1460 t2.3s epoch 2/3 train_loss0.0072 train_acc1.0000 test_acc0.1690 t4.5s epoch 3/3 train_loss0.0034 train_acc1.0000 test_acc0.1640 t6.7s best_test_acc0.1690 权重- results/mini_resnet.pt 曲线 - figures/resnet_curve.png与阶段四一致合成数据噪声较大训练集过拟合train_acc1.0测试集近随机水平——这正印证了残差结构本身能「把训练误差压到极低」泛化能力则取决于数据质量。换成 MNIST/CIFAR 即可看到残差网络相对普通网络的训练优势。四、注意力机制SENet 与 CBAMsrc/attention_scratch.pySESqueeze-Excite全局平均池化得到通道描述子 → 两层 1×1 卷积先降维再升维→ Sigmoid 得到每通道权重乘回原特征。让网络「关注重要通道」。CBAM串联通道注意力avgmax 共享 MLP与空间注意力通道维 avg/max → 卷积依次重标定特征。classSEBlock(nn.Module):def__init__(self,channels,reduction16):super().__init__()self.senn.Sequential(nn.AdaptiveAvgPool2d(1),nn.Conv2d(channels,channels//reduction,1),nn.ReLU(inplaceTrue),nn.Conv2d(channels//reduction,channels,1),nn.Sigmoid())defforward(self,x):returnx*self.se(x)# 逐通道加权形状不变真实运行结果前向形状验证 可视化输入特征图: (1, 32, 32, 32) SE 输出: (1, 32, 32, 32) (逐通道乘权重, 形状不变) CBAM 输出: (1, 32, 32, 32) (形状不变) 热力图 - figures/attn_heatmap.png注意力模块不改变张量形状只是重加权可即插即用到任意 CNN 中。热力图显示通道注意力对 32 个通道给出不同重要性分数空间注意力在特征图中心我们注入的「亮斑」处获得更高响应。五、Transformer 与 ViTsrc/transformer_scratch.py从零实现核心组件并做前向形状验证defscaled_dot_product_attention(q,k,v,maskNone):dq.size(-1)scores(q k.transpose(-2,-1))/math.sqrt(d)# 缩放点积ifmaskisnotNone:scoresscores.masked_fill(mask0,float(-inf))attnscores.softmax(dim-1)returnattn v,attn# 加权求和真实运行结果MHA: in (2, 10, 64) - out (2, 10, 64), attn (2, 4, 10, 10) PosEnc: in (2, 10, 64) - out (2, 10, 64) EncoderLayer: (2, 10, 64) - (2, 10, 64) CausalDecoder: (2, 10, 64) - (2, 10, 64) ViT: input (1, 3, 32, 32) - logits (1, 10) (patch数64, 序列长65) patch 序列: (64, 64) (64 个 4x4 patch) patch 可视化 - figures/vit_patch.png要点多头把d_model64拆成 4 头每头 16 维attn形状(B, heads, N, N)。位置编码加性正弦位置编码形状不变注入序列顺序信息。因果掩码下三角矩阵保证解码时位置i只能看≤i的位置自回归。ViT用Conv2d(3,64,4,4)做 patch 嵌入32×32 图切成 64 个 4×4 patch拼接cls_token后序列长 65再过若干 encoder 层做分类。六、延伸概念周 13 / 14 / 16MobileNet / ShuffleNet周 13轻量MobileNet 用深度可分离卷积逐通道卷积 1×1 点卷积把计算量从K·K·C·C·H·W降到K·K·C·H·W C·C·H·WShuffleNet 进一步用分组卷积 通道洗牌channel shuffle增强组间信息流通适合手机/边缘端。STN 空间变换网络周 14在网络中插入Localisation Net → Grid Generator → Sampler让模型自动学习对输入做旋转/缩放/仿射校正提升对形变的鲁棒性可作为 CNN 前置模块。DeiT / MobileViT周 16DeiT 用蒸馏 token让 ViT 无需海量数据即可训练MobileViT 把卷积的局部建模与Transformer 的全局建模融合兼顾轻量与性能适合移动端。七、小结ResNet 的残差连接是「深层网络可训练」的基石注意力SE/CBAM是「即插即用的特征重标定」Transformer/ViT 把「全局建模」带进视觉。本阶段所有组件均从零实现并前向验证形状配套 Mini-ResNet 与注意力热力图、ViT patch 可视化的真实结果。八、参考He et al.,Deep Residual Learning for Image Recognition(ResNet, 2015)Hu et al.,Squeeze-and-Excitation Networks(SENet, 2018)Woo et al.,CBAM: Convolutional Block Attention Module(2018)Vaswani et al.,Attention Is All You Need(2017)Dosovitskiy et al.,An Image is Worth 16x16 Words(ViT, 2020)

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价