深度学习-CNN 经典模型精讲(重要)-51-110
《动手学深度学习》学习笔记 · 第 51~111 集合订复习版
覆盖范围:第 51 集(加州房价竞赛)~ 第 111 集(分布式训练 QA),中间无笔记的集数(54-56、99-103、110、112-113)不做填充
最终进度:111/191 ▊▊▊▊▊▏▏▏▏▏ 58.1%
进度轨迹:27.7% → 31.4% → 33.0% → 36.1% → 37.7% → 39.3% → 40.8% → 42.4% → 44.0% → 45.5% → 47.1% → 48.7% → 50.3% → 51.3% → 56.5% → 58.1%
李沐深度学习191集课程全解析:模块拆解、学习路径-CSDN博客
吴恩达《面向开发者的提示词工程》-CSDN博客
吴恩达 MCP 教程(Model Context Protocol)-CSDN博客
🗺️ 总章节路线图
| 章 | 集数 | 主题 | 状态 |
|---|---|---|---|
| 一、竞赛收官与模型构造 | 51-53 | 房价竞赛复盘、QA、nn.Module 块思想 | ✅ |
| 二、第5章收官:QA 与 GPU 使用/选购 | 57-60 | 自定义 Module、GPU 三步铁律、买卡优先级 | ✅ |
| 三、卷积神经网络基础 | 61-75 | 竞赛总结、CNN 由来、卷积/填充步幅/多通道/池化 | ✅ |
| 四、经典 CNN 演进链 | 76-98 | LeNet→AlexNet→VGG→NIN→GoogLeNet→BN→ResNet | ✅ |
| 五、单机多卡与分布式训练 | 104-111 | 数据并行、多机 all-reduce | ✅ |
| 下一站 | 110 / 112-113 | 单机多卡简洁实现、数据增广 + QA | ⏭ |
📑 目录导航
- 第一章 竞赛收官与模型构造(第51-53集)
- 第二章 第5章收官:QA 与 GPU(第57-60集)
- 第三章 卷积神经网络基础(第61-75集)
- 第四章 经典 CNN 演进链(第76-98集)
- 第五章 单机多卡与分布式训练(第104-111集)
第一章 竞赛收官与模型构造(第 51-53 集)
🔗 在线链接:https://go.tabbit.site/projects/gQ9RfkdbnM
Markdown 版可视化(Unicode)
三集路线:
51 加州房价竞赛 ─→ 52 QA ─→ 53 模型构造
管道复用拉练 提分靠数据 第5章开篇🏁
特征工程>模型 一针见血 nn.Module 基石
| 集数 | 主题 | 关键点 | 重要度 |
|---|---|---|---|
| 51 | 加州房价竞赛 | 60万条数据,第50集管道照搬即出成绩 | ▊▊▊ |
| 52 | QA | 提分靠优化数据管道,非换模型 | ▊▊▊ |
| 53 | 模型构造 | 一切皆"块",nn.Module 统一接口 | ▊▊▊▊▊ |
nn.Module 继承模板:
class MLP(nn.Module):
__init__ → 声明层(参数自动收集)
forward → 定义计算图
块 = 层 / 组件 / 整模型,可任意嵌套 🧩
⚠️ 子模块放容器要用 nn.ModuleList,原生 list 不被追踪
详细总结
第51集(08:40):课程内部竞赛——加州 2020 房价预测,约 60 万条记录比 Kaggle 版更大。核心体验是管道复用:第 50 集的五步流程原样照搬就能出成绩,训练配方仍是线性回归 + weight_decay + K 折验证。赛后最大心得:成绩差距主要来自数据预处理与特征工程,模型本身是次要的 💡
第52集(03:22):短答疑一针见血——想提成绩?优化数据管道(特征选择、清洗、对数变换)比换模型收益大;判断过拟合:K 折验证分数明显差于训练分数时,加正则或简化特征。
第53集(13:28):第 5 章《深度学习计算》开篇,nn.Module 是一切的基石——块(Block)思想:层、多层组件、整个模型都是块,统一接口可自由嵌套;nn.Sequential 本质就是按顺序串联子模块的容器。框架魔法:子模块参数自动收集、自动初始化、自动上 GPU。实战注意:子模块要放 nn.ModuleList/Dict,原生 Python list 不会被追踪 ⚠️
进度:▊▊▊▊▏▏▏▏▏▏ 27.7%(53/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=51
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=52
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=53
第二章 第5章收官:QA 与 GPU(第 57-60 集)
🔗 在线链接:https://go.tabbit.site/projects/dgiMWNgEuM
Markdown 版可视化(Unicode)
四集路线:
57 第5章QA ─→ 58 使用GPU ─→ 59 购买GPU ─→ 60 QA
框架内功收官🏁 查设备/搬数据 显存优先⭐ 利用率低查num_workers
| 集数 | 主题 | 关键点 | 重要度 |
|---|---|---|---|
| 57 | 第5章 QA | 复杂控制流 → 自定义 Module | ▊▊▊ |
| 58 | 使用 GPU | x.to(‘cuda’) 非原地,需重新赋值 | ▊▊▊▊▊ |
| 59 | 购买 GPU | 显存 > 算力 > 功耗 | ▊▊▊▊ |
| 60 | QA | 瓶颈常在数据加载而非 GPU | ▊▊▊ |
GPU 使用三步铁律:
1️⃣ 查设备 torch.cuda.device_count()
2️⃣ 搬数据 x = x.to('cuda') ⚠️ to() 返回副本
3️⃣ 同设备 数据与参数必须同卡,跨设备运算直接报错 ❌
显存三救急:
显存不够 → 减 batch size 📉
→ 换更小模型
→ 混合精度训练 ⚡
详细总结
第57集(10:52):第 5 章收官 QA——需要复杂控制流(分支、循环、共享层)就写自定义 Module,简单堆叠用 Sequential 即可;参数绑定的典型场景是孪生网络共享编码器、编码器解码器共用词嵌入矩阵;设计新层先想数学上是否可微,再谈实现 🧠
第58集(13:35):GPU 使用三板铁律——torch.device(‘cuda’) 声明设备、device_count() 查卡数;to() 返回副本不是原地操作,必须重新赋值 x = x.to('cuda');数据与参数必须在同一设备才能运算,跨设备直接报错。模型用 net.to('cuda') 整体搬移 🚦
第59集(08:55):选购指南——优先级排序:显存 ⭐⭐⭐⭐⭐ > 算力带宽 > 功耗散热。显存决定能跑多大模型和 batch;初学别追顶配,中端卡 + 大显存够用,二手警惕矿卡;没卡就 Colab/Kaggle 白嫖或租 AWS 竞价实例 ☁️
第60集(08:04):实战答疑——GPU 利用率低多半是数据加载瓶颈,调大 num_workers;显存不够减 batch / 减模型 / 混合精度;多卡先不急,第 104 集有专门章节,先学好单卡 🎯
进度:▊▊▊▏▏▏▏▏▏▏ 31.4%(60/191)🎉 第 5 章《深度学习计算》完结!
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=57
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=58
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=59
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=60
第三章 卷积神经网络基础(第 61-75 集)
3.1 第61-63集:竞赛总结 + 从全连接到卷积
🔗 在线链接:https://go.tabbit.site/projects/d9nSnirrpr
Markdown 版可视化(Unicode)
三集路线:
61 竞赛总结 ─→ 62 QA ─→ 63 从全连接到卷积
特征工程>模型⭐ 26分钟复盘 CNN 开篇🚀
管道即资产 防验证集过拟合 两大先验原则
| 集数 | 主题 | 关键点 | 重要度 |
|---|---|---|---|
| 61 | 竞赛总结 | 特征工程贡献最大,模型次要 | ▊▊▊▊ |
| 62 | QA | 反复调参会"偷看"验证集 → K 折平均 | ▊▊▊ |
| 63 | 卷积由来 | 平移不变性 + 局部性 → CNN | ▊▊▊▊▊ |
全连接 → 卷积的推导链:
图片太大 3×10⁶ 维 ❌
│ 两大先验
▼
平移不变性 → 参数共享(全图一个核)🔒
局部性 → 稀疏连接(只看局部窗口)🔲
▼
参数爆炸被治好 → CNN 诞生 🎯
详细总结
第61集(16:39):两次房价竞赛总复盘——贡献排序:特征工程 ⭐ > K 折验证 > 模型(线性回归已能打出不错成绩)。核心启示:“数据和特征决定上限,模型只是逼近上限”;可复用的预处理管道是最值钱的沉淀 📦
第62集(26:03):答疑精华——提分靠特征深挖 + 多模型 ensemble,但反复在同一验证集调参会间接"偷看"答案,解法是 K 折平均;表格数据深度学习能用但非最优,XGBoost 通常更强更省力。
第63集(15:00):🚀 第 6 章 CNN 大章节开篇(63-99 集共 37 集)!这集讲 CNN 的"为什么"——全连接处理图片是灾难:1000×1000 彩色图一层就要 3×10¹⁰ 参数。李沐从两条先验原则推导出 CNN 结构:平移不变性 → 参数共享(全图共用一个卷积核);局部性 → 稀疏连接(每个输出只看局部窗口)。CNN 不是拍脑袋发明的,是从图片数据的先验"推导"出来的 🎯
进度:▊▊▊▏▏▏▏▏▏▏ 33.0%(63/191)🎉 三分之一达成!
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=61
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=62
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=63
3.2 第64-69集:卷积运算 + 填充和步幅
🔗 在线链接:https://go.tabbit.site/projects/jjFS7NMA4C
Markdown 版可视化(Unicode)
卷积输出形状三大件:
64 卷积运算 ─→ 67 填充/步幅 ─→ 70 多通道(下一站)
窗口点积 输出形状旋钮🎛️
9参数搞定全图 n+p−k 再除 s
| 集数 | 主题 | 关键点 | 重要度 |
|---|---|---|---|
| 64 | 卷积层 | 窗口点积,输出 (H−K+1)×(W−K+1) | ▊▊▊▊▊ |
| 65 | 代码 | corr2d 手写 + nn.Conv2d | ▊▊▊▊ |
| 66 | QA | 互相关≠严格卷积,核靠学习 | ▊▊▊ |
| 67 | 填充和步幅 | 输出 = ⌊(n+p−k)/s⌋+1 | ▊▊▊▊▊ |
| 68 | 代码 | 4 组实验全验证公式 | ▊▊▊▊ |
| 69 | QA | 填 0 不碍事,stride vs 池化 | ▊▊▊ |
输出形状旋钮 🎛️(s=1 时):
填充 p ↑ → 输出变大 → p=k−1 保形状不缩
步幅 s ↑ → 输出变小 → s=2 直接砍半
黄金搭配:
3×3 核 + padding=1 → 形状不变 ✅
5×5 核 + padding=2 → 形状不变 ✅
3×3 核 + p=1 + s=2 → 长宽减半 ✅
详细总结
第64集(11:02):把 63 集的原则翻译成数学——卷积就是滑动窗口做点积:输出[i,j] = ΣΣ 输入窗口 × 卷积核。参数量对比震撼:全连接 3×10¹⁰ ❌ vs 3×3 核只有 9 个参数 ✅。输出尺寸 (H−K+1)×(W−K+1),步幅=1、无填充时每层都会"掉边"。
第65集(10:08):手写 corr2d 双循环窗口点积 → 学习 X 通过训练自动学出边缘检测核(从随机初始化到 [1,-1])→ 封装进 nn.Module 与 nn.Conv2d 对拍。附赠多输入通道雏形:RGB 三通道各卷各的再相加。
第66集(07:44):答疑精华——严格数学卷积要先翻转核,深度学习省略翻转(互相关),叫法习惯而已;卷积核不是手工设计的,是随机初始化 + 反向传播学出来的;多个核 → 多张特征图 → 堆成输出通道。
第67集(14:08):填充和步幅——输出形状的两大旋钮。万能公式:输出 = ⌊(n+p−k)/s⌋+1。填充 p 治"层数深了形状缩没"+“边缘像素只算一次”;步幅 s 是卷积自带的降采样。核心结论:s=1 时取 p=k−1 输入输出同形状——这就是全行业用奇数核(1/3/5/7)的原因:对称填充、中心对齐 🎯
第68集(05:05):四组实验逐一验证公式(补批量+通道维的小技巧):3×3+pad1→[8,8] 不变;(5,3)+(2,1)→非对称填充;3×3+pad1+stride2→[4,4] 减半;(3,5)+(0,1)+(3,4)→[2,2] 组合拳。kernel_size/padding/stride 全支持 (高, 宽) 二元组。
第69集(23:57):答疑——填 0 不干扰学习(0=空白,代价极小);stride 降采样 vs 池化都能缩尺寸(池化下一节登场);公式除不尽就向下取整丢弃边缘。
进度:▊▊▊▊▏▏▏▏▏▏ 36.1%(69/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=64
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=65
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=66
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=67
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=68
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=69
3.3 第70-72集:多输入输出通道
🔗 在线链接:https://go.tabbit.site/projects/6AGo6ydZoA | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=70
| 集数 | 时长 | 主题 | 一句话核心 |
|---|---|---|---|
| 70 | 19:34 | 多输入输出通道 | 核形状 co×ci×k²,通道数必须对上 |
| 71 | 06:36 | 代码实现 | corr2d 多通道版 + 1×1 卷积对拍 |
| 72 | 19:16 | QA | 通道数怎么定、1×1 有何用 |
70 通道规则 🌈 71 代码 💻 72 QA ❓
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 多输入: 逐通道卷 │ │ corr2d_multi_in │ │ 通道数=经验驱动 │
│ 积再相加 │──▶│ multi_in_out+stack│──▶│ 64→128→256 翻倍 │
│ 多输出: 核个数= │ │ 1×1 ≡ reshape+ │ │ 1×1: 混合通道 │
│ 输出通道数 │ │ 矩阵乘法 ✅对拍 │ │ 降维/加非线性 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
详细总结
第70集(19:34):多输入通道——RGB 三通道输入 → 核也带相同通道数 → 逐通道卷积再求和,输出仍是单张特征图。多输出通道——卷积核的个数 = 输出通道数,每个核独立扫描学一种特征。核形状从此变成 co×ci×kh×kw,参数量随通道数相乘暴涨;偏置按输出通道各一个。1×1 卷积不识别空间模式,本质是逐像素的通道维全连接 💡
第71集(06:36):corr2d_multi_in 用 zip 对各通道分别卷积求和;corr2d_multi_in_out 对每个核计算后 torch.stack 堆成通道维,输出 (co, h’, w’)。高光验证:1×1 卷积的输出与"reshape + 矩阵乘法"完全一致,坐实它就是通道全连接 ✅
第72集(19:16):输出通道数没有理论最优,经验驱动、常见逐层翻倍(64→128→256),受算力约束;1×1 卷积三大用途——混合通道、降维/升维省算力、加非线性(NIN/GoogLeNet 基石);卷积参数量与图像大小无关(权重共享),全连接则随分辨率爆炸。
进度:▊▊▊▊▏▏▏▏▏▏ 37.7%(72/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=70
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=71
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=72
3.4 第73-75集:池化层
🔗 在线链接:https://go.tabbit.site/projects/GTFaVswU7o | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=73
| 集数 | 时长 | 主题 | 一句话核心 |
|---|---|---|---|
| 73 | 10:21 | 池化层理论 | 窗口取 max/mean,无参数 |
| 74 | 06:58 | 实现 | 手写 pool2d + nn.MaxPool2d |
| 75 | 09:48 | QA | max vs mean、梯度路由 |
73 理论 🧽 74 实现 💻 75 QA ❓
卷积对位置太敏感 ──▶ 手写 max/mean 窗口 ──▶ max 更常用(保最强响应)
最大池化=取最强响应 nn.MaxPool2d 对拍 丢信息换平移容忍
输出公式同卷积 ✅ 通道数不变逐通道处理 梯度只给窗口最大值
详细总结
第73集(10:21):卷积挪 1 像素输出大变 → 池化解药:max 取窗口最强响应,换平移容忍 + 降分辨率。无参数、通道数不变、填充/步幅公式与卷积一致(2×2 + s=2 → 长宽减半)📏
第74集(06:58):双循环手写 pool2d(max/mean 双模式)→ nn.MaxPool2d 支持 padding/stride → 多通道逐通道独立处理 ✅
第75集(09:48):max 比 mean 常用(平均偏"糊");池化确实丢信息,但换来容忍度+算力,权衡的免费午餐;无参数无需更新,梯度只路由给窗口内最大值位置 💡
进度:▊▊▊▊▏▏▏▏▏▏ 39.3%(75/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=73
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=74
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=75
第四章 经典 CNN 演进链(第 76-98 集)
经典网络演进总表
| 网络 | 年份/名次 | 核心标志 | 参数量 |
|---|---|---|---|
| LeNet | 1988,开山之作 | 卷积+池化×2 → FC×3,Sigmoid+平均池化 | — |
| AlexNet | 2012 ILSVRC 冠军 | ReLU + Dropout + GPU + 数据增广 | 60M |
| VGG | 2014 亚军 | 全 3×3 小核积木化、深度换效果 | 139M |
| NIN | — | 1×1 卷积微型 MLP + 全局平均池化 | ≈2M |
| GoogLeNet | 2014 冠军 | Inception 四路并行 + 1×1 瓶颈 | 6.8M |
| BN | 训练稳定器 | batch 内标准化 + γβ 缩放平移 | — |
| ResNet | 2015 冠军 | 残差连接 y=f(x)+x,深达 152 层 | — |
4.1 第76-78集:LeNet——卷积神经网络开山之作 🏛️
🔗 在线链接:https://go.tabbit.site/projects/TXM6gVni3X | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=76
| 集数 | 时长 | 主题 | 一句话核心 |
|---|---|---|---|
| 76 | 08:31 | LeNet 理论 | 卷积+池化×2 → FC×3,空间↓通道↑ |
| 77 | 21:47 | 代码 | Xavier 初始化 + GPU 训练 Fashion-MNIST |
| 78 | 30:08 | QA | 首层卷积在"学眼睛"、加速比 1.8x |
LeNet 数据流水线 🏛️
1×28×28 ─▶ 卷积5×5(p=2) ─▶ Sigmoid ─▶ 平均池化 ─▶ 6×14×14
─▶ 卷积5×5 ─▶ Sigmoid ─▶ 平均池化 ─▶ 16×5×5
─▶ Flatten ─▶ 400 ─▶ 120 ─▶ 84 ─▶ 10 类
设计哲学:池化缩空间 ↘,卷积通道翻倍 6→16 ↗
详细总结
第76集(08:31):LeCun 1988 年为邮编/支票识别设计的开山 CNN 📮。结构哲学——池化降分辨率、卷积通道翻倍;时代印记是 Sigmoid + 平均池化(无 ReLU、无 max pooling)。
第77集(21:47):nn.Sequential 搭建 + net.apply 挂 Xavier 初始化(配 Sigmoid 防饱和)→ 逐层打印形状诊断 → GPU 训练:lr=0.9、10 epoch,测试精度 1 epoch 就破 0.7、之后 >0.98 ✅
第78集(30:08):QA 金句——首层卷积核可视化像"学到了眼睛"👁️;框架自动补批量维;换 ReLU 会更快;LeNet 太浅上不了 ImageNet,放大版就是 AlexNet(下一站)。
进度:▊▊▊▊▏▏▏▏▏▏ 40.8%(78/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=76
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=77
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=78
4.2 第79-81集:AlexNet——制霸 ImageNet 的起点 🚀
🔗 在线链接(订正版,以此为准):https://go.tabbit.site/projects/9JtezxTfet
(原链接 https://go.tabbit.site/projects/9qXmKwPn4R 已被上述订正链接替代,保留备查)
📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=79
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 79 | 35:16 | AlexNet 理论 | ReLU+Dropout+GPU,2012 ILSVRC 冠军 |
| 80 | 10:39 | 代码 | Fashion-MNIST 上跑 AlexNet |
| 81 | 16:06 | QA | 为什么能赢、局部响应归一化 |
AlexNet 架构(2012)🚀
224×224×3 ─▶ Conv(96,11,s=4) → ReLU → MaxPool(3,s=2) → LRN
─▶ Conv(256,5,p=2) → ReLU → MaxPool(3,s=2) → LRN
─▶ Conv(384,3,p=1) → ReLU
─▶ Conv(256,3,p=1) → ReLU
─▶ Conv(256,3,p=1) → ReLU → MaxPool(3,s=2)
─▶ FC 4096→Dropout → FC 4096→Dropout → FC 1000
vs LeNet:更深(8层)、更宽(60M参数,约 LeNet 的 260 倍)、
ReLU替Sigmoid、Dropout防过拟合
详细总结
第79集(35:16):AlexNet 是 2012 年 ILSVRC 冠军,top-5 错误率 15.3% vs 第二名 26.2%,碾压式胜利引爆深度学习热潮 🔥。相比 LeNet 五大升级:ReLU 替代 Sigmoid(抗梯度消失)、最大池化、Dropout(p=0.5 防过拟合)、GPU 并行训练(两块 GTX 580)、数据增广(随机裁剪/翻转/颜色扰动);8 层 60M 参数,比 LeNet 大约 260 倍。局部响应归一化(LRN)模仿生物侧抑制,但后来被 BatchNorm 取代。
第80集(10:39):用 nn.Sequential 搭建完整 AlexNet;Fashion-MNIST 上复现时输入改 1 通道、输出改 10 类、分辨率放大到 224。三大全连接层参数占了大头,训练显存占用大,建议 batch_size 调小或用 GPU。
第81集(16:06):QA 三要素论——AlexNet 能赢因为算力(GPU)+ 数据(ImageNet)+ 算法(ReLU/Dropout/数据增广)三要素同时到位;LRN 现在基本不用了;Dropout 训练时随机丢、推理时关掉并按 p 缩放补偿权重。
进度:▊▊▊▊▏▏▏▏▏▏ 42.4%(81/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=79
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=80
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=81
4.3 第82-84集:VGG——积木化设计 🧱
🔗 在线链接:https://go.tabbit.site/projects/WEvbq2cq8m | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=82
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 82 | 09:04 | VGG 理论 | 全 3×3 小核 + VGG 块,深度换效果 |
| 83 | 07:23 | 代码 | vgg_block 复用,通道数÷4 省算力 |
| 84 | 04:16 | QA | 2 个 3×3 ≈ 1 个 5×5 |
VGG-11 结构 🧱(每块:n×[3×3卷积+ReLU] → 2×2池化)
块1(1层,64) → 块2(1层,128) → 块3(2层,256) → 块4(2层,512) → 块5(2层,512) → FC×3
规则:块内通道统一,块间翻倍;长宽每块减半(空间↓ 通道↑)
详细总结
第82集(09:04):2014 年 ILSVRC 亚军(分类项)。核心贡献是把架构规则化、积木化:只用 3×3(p=1) 小核,堆出 VGG 块(n 个卷积 + 池化)。哲学:2 个 3×3 感受野 = 1 个 5×5,但参数 18 vs 25 更少、非线性更多 🎯。代价:139M 参数、计算巨大。
第83集(07:23):vgg_block(num_convs, in, out) 函数复用拼出 VGG-11;Fashion-MNIST 上把通道数 ÷4(ratio=4),精度基本不掉、算力省 16 倍 ✅
第84集(04:16):池化 vs stride=2 效果相近(ResNet 后流行用 stride);VGG 最深 19 层就到头,再深训练不稳定 → 埋下 ResNet 伏笔。
进度:▊▊▊▊▏▏▏▏▏▏ 44.0%(84/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=82
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=83
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=84
4.4 第85-87集:NIN——网络中的网络 🧩
🔗 在线链接:https://go.tabbit.site/projects/9ihZfb2T4u | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=85
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 85 | 10:55 | NIN 理论 | 1×1 卷积做微型 MLP + GAP 砍 FC |
| 86 | 10:02 | 代码 | nin_block + AdaptiveAvgPool2d |
| 87 | 16:42 | QA | GAP 为什么能替 FC |
NiN 块 🧩(×4 堆叠)
普通卷积+ReLU → 1×1+ReLU → 1×1+ReLU
尾部:输出通道=类别数 → 全局平均池化 → Flatten → softmax
参数对比:AlexNet 60M / VGG 139M / NiN ≈2M 📉
详细总结
第85集(10:55):针对 FC 层参数大易过拟合的痛点,NIN 两大创新:① 1×1 卷积在每个像素位置做通道混合的微型 MLP;② 全局平均池化(GAP)直接砍掉全部 FC——每通道求均值当类别分数,无参数天然抗过拟合 ✅
第86集(10:02):nin_block 三明治结构(普通卷积 + 两个 1×1),4 块堆叠 + GAP + Flatten,最后一个 NiN 块输出通道 = 类别数 10,lr=0.1 训练轻快 ⚡
第87集(16:42):GAP 代价是信息压缩狠、收敛略慢;NiN 当时精度不拔尖没大红,但 1×1 + GAP 思想被 GoogLeNet/ResNet 继承发扬 🧬
进度:▊▊▊▊▊▏▏▏▏▏ 45.5%(87/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=85
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=86
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=87
4.5 第88-90集:GoogLeNet——Inception 四路并行 🌟
🔗 在线链接:https://go.tabbit.site/projects/rtGDnum5qw | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=88
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 88 | 26:59 | GoogLeNet 理论 | Inception 块四路并行 + 1×1 瓶颈 |
| 89 | 07:10 | 代码 | Inception 类 + torch.cat 通道拼接 |
| 90 | 16:33 | QA | 四路并行的动机、后续版本 |
Inception 块 🌟(四路并行 → 通道拼接)
① 1×1 ────────────────┐
② 1×1降维 → 3×3 ──────┤
③ 1×1降维 → 5×5 ──────┼─▶ torch.cat
④ 3×3池化 → 1×1 ──────┘
整体:stem → Inception×2/5/2/2 → GAP → FC
参数仅 6.8M(AlexNet 60M、VGG 139M 的零头)📉
详细总结
第88集(26:59):2014 冠军。核心:不知道选哪种核?四路全上让网络自己学;3×3/5×5 前先用 1×1 降通道(瓶颈层),计算量大降 ✂️。架构继承 NiN 的 1×1+GAP,分辨率逐段减半、通道逐段翻倍。
第89集(07:10):Inception 类四条 path + torch.cat(dim=1) 拼接,lr=0.1 训练,精度与 VGG 相当但参数小一个量级 ⚡
第90集(16:33):QA——瓶颈层省一个数量级计算;v2 加 BN、v3 分解卷积、v4 引入残差,一路进化到 Inception-ResNet 🧬
进度:▊▊▊▊▊▏▏▏▏▏ 47.1%(90/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=88
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=89
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=90
4.6 第91-93集:批量归一化 BN——训练稳定器 ⚖️
🔗 在线链接:https://go.tabbit.site/projects/RqqtvRUuef | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=91
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 91 | 17:59 | BN 理论 | batch 内标准化 + γβ 缩放平移 |
| 92 | 17:12 | 代码 | 从零 batch_norm + BatchNorm2d |
| 93 | 11:00 | QA | 为何有效、batch 小换 LayerNorm |
BN 公式 ⚖️
x̂ = (x − μ_B) / √(σ²_B + ε) → y = γ·x̂ + β
全连接:按特征列统计 | 卷积:batch+空间维,逐通道
训练用 batch 统计,预测用移动平均(固定值)
位置惯例:卷积 → BN → 激活 ✅
详细总结
第91集(17:59):深层网络底层一动上层全乱 → BN 在每个 mini-batch 内标准化再缩放平移。γβ 可学习,能学回任意分布,不是硬约束 🔓。附带收益:训练稳可用更大 lr,batch 噪声自带正则 🎁
第92集(17:12):从零实现关键在 dim——全连接按 0、卷积按 (0,2,3) 逐通道;预测用移动平均、训练时同步更新(momentum=0.9)。LeNet 加 BN 后收敛更快、对 lr 更不敏感 ⚡
第93集(11:00):QA 金句——"缓解内部协变量偏移"是原解释,新研究(含李沐本人论文):BN 让损失面更平滑;batch 太小统计不准 → 换 LayerNorm(Transformer 标配);BN 与权重衰退不冲突(γ 抵消缩放)💡
进度:▊▊▊▊▊▏▏▏▏▏ 48.7%(93/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=91
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=92
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=93
4.7 第94-96集:ResNet——残差连接横空出世 🏆
🔗 在线链接:https://go.tabbit.site/projects/JkpvNpCMG2 | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=94
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 94 | 14:10 | ResNet 理论 | y = f(x) + x,深网不再退化 |
| 95 | 09:26 | 代码 | Residual 类 + resnet18 |
| 96 | 10:33 | QA | 梯度直达浅层的原因 |
残差块 🏆
x ──┬──▶ 3×3卷积→BN→ReLU→3×3卷积→BN ──┐
│ + ──▶ ReLU ──▶ out
└──────── 恒等映射(1×1投影若需对齐)─┘
含义:网络学的是"修补量"而非"从零重建"
详细总结
第94集(14:10):痛点——深网加层反而退化(非过拟合)❌。解法:跳跃连接 y=f(x)+x,最差也能学到恒等,且加层=扩大函数类而非替换 ✅。2015 冠军,152 层深度从此可能,Transformer 也离不开残差 📈
第95集(09:26):Residual 类双卷积+BN,use_1x1 控制跳跃路径投影;resnet18 四阶段堆叠(每阶段首块 stride=2+投影、通道翻倍),Fashion-MNIST 精度稳定提升 ✅
第96集(10:33):QA——梯度可经跳跃直达浅层不衰减;恒等映射零参数,仅投影路径有 1×1 参数 💡
进度:▊▊▊▊▊▏▏▏▏▏ 50.3% 🎉(96/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=94
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=95
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=96
4.8 第97-98集:ResNet 的梯度计算 + QA——数学收官 🏁
🔗 在线链接:https://go.tabbit.site/projects/NnaFg3AGmC | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=97
详细总结
第97集(08:22):为什么残差训得动?两条数学线索 🧮
- 梯度视角:普通深网梯度是 ∏Wᵢ 连乘,极易消失/爆炸;ResNet 的 x_L = x₀ + Σfᵢ(·),梯度里恒有"1"保底,反向传播永远有通路 ➕
- 优化视角:泰勒展开下 f 只需逼近残差 x*−x,"当前解 + 修正量"的误差修正器模式,最差退化回浅网、不会更糟 🎯
第98集(02:17):快问快答——残差与 BN 相辅相成(BN 稳分布、残差保梯度);现代 Transformer/LLM 每个子层的 Add & Norm 就是残差的直系后代,这套思想贯穿至今 💡
进度:▊▊▊▊▊▏▏▏▏▏ 51.3%(98/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=97
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=98
🏁 至此第二部分(CNN 理论线)完整收官——从卷积原理到 LeNet→AlexNet→VGG→NiN→GoogLeNet→BN→ResNet 的完整演进链已打通。
第五章 单机多卡与分布式训练(第 104-111 集)
5.1 第104-108集:单机多卡并行
🔗 在线链接:https://go.tabbit.site/projects/7YBX9GKEw9 | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=104
| 集数 | 时长 | 主题 | 一句话 |
|---|---|---|---|
| 104 | 06:59 | 单机多卡并行 | 数据并行:切 batch 不切模型 |
| 105 | 03:56 | QA | 通信开销与方案选择 |
| 106 | 21:41 | 从零实现 | 手动拆 batch 到各卡 |
| 107 | 11:53 | 简洁实现 | nn.DataParallel 一行搞定 |
| 108 | 20:40 | QA | 大 batch 训练要点 |
详细总结
第104集(06:59)🖥️:三种并行方式对比——数据并行(每卡完整模型+切 mini-batch,梯度 all-reduce 求平均)是绝对主流,因为“求平均”通信简单、扩展近线性;模型并行只在单卡装不下时才用。
第105集(03:56)❓:总 batch = 每卡 batch × 卡数,等效大 batch 记得调 lr。
第106-107集(21:41 / 11:53)💻:从零版手动把参数和 batch 分发到各卡、梯度汇聚平均后广播;框架版 nn.DataParallel 一行搞定(现代推荐 DDP 多进程更快)。双卡 LeNet 实测 ≈1.9x 加速 📈
第108集(20:40)❓:大 batch 三件事——等效 lr 放大、warmup 防震荡、BN 统计反而更准受益 💡
进度:▊▊▊▊▊▏▏▏▏▏ 56.5%(108/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=104
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=105
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=106
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=107
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=108
5.2 第109+111集:分布式训练——瓶颈在机间带宽
🔗 在线链接:https://go.tabbit.site/projects/pwZcLBzPXR | 📺 视频入口:https://www.bilibili.com/video/BV1daQAYuEYm/?p=109
详细总结
第109集(21:45)🌐:
- 数据并行延伸到多机:梯度要跨机 all-reduce,机间带宽(以太网/IB)远低于卡间(NVLink),通信成为大头;
- 梯度压缩技巧:loss 先 scale 放大 → 梯度变大 → 转 16bit 舍入误差小 → 同步完再缩回 📉;
- 同步收敛稳(主流)vs 异步吞吐高但梯度延迟(stale gradient)伤收敛 ⏱️。
第111集(09:00)❓:
- 加速比上不去 → 减少同步频率 / 压缩梯度 / 上 IB 网络;
- 异步是参数服务器时代的方案,现已被淘汰。
进度:▊▊▊▊▊▏▏▏▏▏ 58.1%(111/191)
📺 原视频:
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=109
- https://www.bilibili.com/video/BV1daQAYuEYm/?p=111
🏁 阶段收官与下一站
本阶段从房价竞赛复盘出发,补齐了 nn.Module 块思想与 GPU 基本功;随后打通完整 CNN 理论线——两条先验推导出卷积,再沿 LeNet→AlexNet→VGG→NIN→GoogLeNet→BN→ResNet 走完经典演进;最后落地单机多卡与分布式并行。
下一站:第 110 集《单机多卡简洁实现》、第 112-113 集《数据增广 + QA》🌈
下一站:第 110 集《单机多卡简洁实现》、第 112-113 集《数据增广 + QA》🌈
更多推荐



所有评论(0)