D2L 详细学习顺序与章节说明
D2L 详细学习顺序与章节说明
面向深度学习理论补强、独立编程、计算机视觉与医学 AI 科研
核心教材:Dive into Deep Learning / 《动手学深度学习》
主要版本:中文版第二版(PyTorch)
学习目标:理论基础 → 独立实现 → 实验分析 → CV/医学AI科研迁移
推荐周期:12 周左右
推荐投入:每周 8~12 小时
本文件不是 D2L 原目录的简单复制,而是针对 CV/医学AI科研目标重新排序后的学习路线。
0. 先看结论:不要按照 D2L 原目录机械从头学到尾
对于以 计算机视觉、医学人工智能、科研能力 为主要目标的学习者,推荐顺序:
阶段 0:第 1 章(快速浏览)
↓
阶段 1:第 2 章 预备知识
↓
阶段 2:第 3 章 线性神经网络
↓
阶段 3:第 4 章 多层感知机
↓
阶段 4:第 5 章 深度学习计算
↓
阶段 5:第 6 章 卷积神经网络
↓
阶段 6:第 7 章 现代卷积神经网络
↓
阶段 7:第 11 章 优化算法
↓
阶段 8:第 8~9 章 RNN(精选)
↓
阶段 9:第 10 章 注意力机制 / Transformer
↓
阶段 10:ViT / Transformers for Vision(英文版补充)
↓
阶段 11:第 13 章 计算机视觉(精选)
↓
阶段 12:回到自己的科研模型做 Model Audit 为什么把第 11 章“优化算法”提前?
因为学完 CNN / ResNet 后,你已经有真实训练对象。这时候再理解:
SGD
Momentum
Adam
Learning Rate Scheduler 会比按照原书顺序等到 Transformer 后再学更直观。
1. 学习优先级标记
本文使用四种优先级。
S:必须精学
标准:
- 读懂原理;
- 关键公式自己推一遍;
- From Scratch;
- PyTorch 实现;
- 能闭卷解释;
- 能迁移到科研。
A:重点学习
标准:
- 理解核心思想;
- 能使用 PyTorch;
- 能解释用途;
- 不要求所有细节都从零实现。
B:理解即可
标准:
- 看懂;
- 知道为什么出现;
- 知道和后续内容的关系。
C:暂时跳过 / 后续按需学习
不代表没有价值,只是对当前目标优先级低。
2. Stage 0:第 1 章 引言
推荐时间
1~2 小时
学习等级
B
1.1 日常生活中的机器学习
快速阅读。
理解:
机器学习 ≠ 单纯写规则
数据 + 模型 + 目标函数 + 优化 1.2 机器学习中的关键组件
认真看。
至少理解:
数据
模型
目标函数
优化算法 1.3 各种机器学习问题
了解:
监督学习
无监督学习
强化学习
分类
回归
生成 1.4~1.7
快速浏览即可。
不建议花很多时间背深度学习历史。
本章输出
写一篇:
notes/01_introduction.md 只回答三个问题:
1. 一个机器学习系统由什么组成?
2. 深度学习和传统程序设计的主要区别是什么?
3. 我的研究问题属于什么类型? 3. Stage 1:第 2 章 预备知识
这是整个 D2L 的地基。
建议时间:Week 1
2.1 数据操作
优先级:S
必须熟练:
torch.tensor
torch.arange
reshape
view
unsqueeze
squeeze
transpose
permute
cat
stack
sum
mean
max
argmax 必须理解:
shape
dtype
device
broadcasting
indexing 必做
自己完成:
x = torch.arange(24) 然后尝试变成:
[2, 3, 4]
[4, 6]
[1, 2, 3, 4] 并解释每个 shape。
验收
看到:
[B, C, H, W] 能够立即理解:
Batch
Channel
Height
Width 2.2 数据预处理
优先级:A
理解:
缺失值
数据读取
数据转换 不需要在 pandas 细节上花很多时间。
重点建立意识:
模型之前首先是数据。
2.3 线性代数
优先级:S
重点:
标量
向量
矩阵
张量
矩阵乘法
点积
范数
转置
矩阵维度 必须做到:
看到:
Y = XW + b 可以判断:
X: [B, Din]
W: [Din, Dout]
b: [Dout]
Y: [B, Dout] 不需要现在重新系统学一本线性代数教材。
原则:
D2L 遇到不会的数学,再补。
2.4 微积分
优先级:S
重点:
导数
偏导
梯度
链式法则 必须真正理解:
∂L/∂W 表示损失函数对参数变化的敏感程度。
必做
手算:
y = x^2
y = x^3 + 2x 以及简单链式法则。
2.5 自动微分
优先级:S+
这是 Week 1 最重要的一节。
必须理解:
requires_grad
计算图
forward
backward
gradient
detach
no_grad
梯度累积 必做实验
import torch
x = torch.tensor(2.0, requires_grad=True)
y = x ** 3 + 2 * x
y.backward()
print(x.grad) 然后自己手算验证。
必须回答
1. loss.backward() 到底做了什么?
2. 为什么 PyTorch 可以自动求梯度?
3. 为什么连续 backward 会发生梯度累积?
4. 为什么训练时需要 optimizer.zero_grad()? 2.6 概率
优先级:A
重点:
随机变量
概率分布
期望
方差
条件概率 不要在复杂概率论证明中停留过久。
后续看到:
Dropout
初始化
概率模型
不确定性 时再回来看。
2.7 查阅文档
优先级:A
培养:
遇到 PyTorch API 问题
↓
先查官方 documentation
↓
再问 AI 而不是反过来。
Week 1 输出
notes/
├── tensor.md
├── linear_algebra.md
├── calculus.md
└── autograd.md
from_scratch/
└── autograd_demo.py Week 1 验收
- 熟练 Tensor shape
- 能解释 broadcasting
- 能解释 gradient
- 能解释 computational graph
- 能手算简单梯度
- 能解释 backward()
4. Stage 2:第 3 章 线性神经网络
建议时间:Week 2
这是理解整个神经网络训练流程最重要的一章。
3.1 线性回归
优先级:S
重点:
模型
参数
预测
Loss
Optimization 建立完整流程:
Data
↓
Forward
↓
Prediction
↓
Loss
↓
Backward
↓
Gradient
↓
Parameter Update 3.2 线性回归从零开始实现
优先级:S+
这一节不能跳。
必须自己实现:
参数初始化
模型
Loss
SGD
Training Loop 规则:
- 第一遍可以跟教材;
- 第二遍关掉教材重新写。
3.3 线性回归简洁实现
优先级:S
理解 PyTorch 如何把上一节封装为:
nn.Linear
nn.MSELoss
torch.optim.SGD 重点不是记 API,而是知道高级 API 替你做了什么。
3.4 Softmax 回归
优先级:S
理解:
logits
softmax
probability
cross entropy
classification 3.5 图像分类数据集
优先级:A
熟悉:
Fashion-MNIST
Dataset
DataLoader
Batch
Shuffle 3.6 Softmax 从零实现
优先级:S
自己写:
softmax
cross entropy
accuracy
training loop 3.7 Softmax 简洁实现
优先级:S
使用:
nn.Linear
nn.CrossEntropyLoss 重点搞懂:
CrossEntropyLoss为什么通常直接接 logits,而不是先手动 softmax?
Week 2 必做实验
Experiment 01:Learning Rate
0.001
0.01
0.1
1.0 Experiment 02:Batch Size
16
64
256 观察:
训练速度
震荡
收敛 Week 2 输出
notes/
├── linear_regression.md
├── softmax.md
└── cross_entropy.md
from_scratch/
├── linear_regression.py
└── softmax_regression.py
pytorch/
├── linear_regression.py
└── softmax_regression.py
experiments/
├── learning_rate/
└── batch_size/ 5. Stage 3:第 4 章 多层感知机
建议:Week 3~4
4.1 多层感知机
优先级:S
理解:
Linear
Activation
Hidden Layer
Output Layer 必须回答:
为什么只有 Linear 层的多层网络仍然等价于一个 Linear 模型?
4.2 MLP 从零实现
优先级:S
独立实现:
W1
b1
W2
b2
ReLU
Forward 4.3 MLP 简洁实现
优先级:S
使用:
nn.Sequential
nn.Linear
nn.ReLU 4.4 模型选择、欠拟合和过拟合
优先级:S+
科研必学。
必须理解:
Training Error
Validation Error
Test Error
Underfitting
Overfitting
Model Complexity
Generalization 必须会看曲线:
Train Loss ↓
Val Loss ↓ 正常。
Train Loss ↓
Val Loss ↑ 典型过拟合。
4.5 权重衰减
优先级:S
理解:
L2 Regularization
Weight Decay 4.6 Dropout
优先级:S
理解:
Train Mode
Eval Mode
随机屏蔽
Scaling
Regularization 一定要知道:
model.train()
model.eval() 为什么重要。
4.7 前向传播、反向传播和计算图
优先级:S++
全书核心章节之一。
自己画:
x
↓
Linear
↓
ReLU
↓
Linear
↓
Loss 再画:
∂L/∂W2
↓
∂L/∂h
↓
∂L/∂W1 必须掌握:
Forward Propagation
Computational Graph
Chain Rule
Backward Propagation 4.8 数值稳定性和模型初始化
优先级:S
理解:
Gradient Vanishing
Gradient Explosion
Xavier Initialization 必须回答:
为什么深层网络训练困难?
4.9 环境和分布偏移
优先级:A
医学 AI 尤其值得看。
理解:
Train Distribution
Test Distribution
Distribution Shift 以后做:
跨中心验证
外部数据集
不同医院数据 会非常重要。
4.10 Kaggle 房价预测
优先级:B / 可跳
CV 主线下可以浏览代码结构,不必大量调参。
Week 3~4 输出
notes/
├── mlp.md
├── activation.md
├── generalization.md
├── regularization.md
├── backpropagation.md
└── initialization.md
from_scratch/
├── mlp.py
└── dropout.py
experiments/
├── overfitting/
└── regularization/ 必做实验
建立一个故意过拟合模型,再依次加入:
Weight Decay
Dropout 观察验证集变化。
6. Stage 4:第 5 章 深度学习计算
建议:Week 4 末~Week 5 前半
5.1 层和块
优先级:S
必须理解:
class MyModel(nn.Module):
def __init__(self):
...
def forward(self, x):
... 5.2 参数管理
优先级:A
理解:
parameters()
named_parameters()
weight
bias 5.3 延后初始化
优先级:B
理解概念即可。
5.4 自定义层
优先级:S
科研必学。以后修改模型,本质上经常就是:
class NewModule(nn.Module):
... 5.5 读写文件
优先级:S
掌握:
torch.save()
torch.load()
state_dict()
load_state_dict() 5.6 GPU
优先级:S
掌握:
device = torch.device(...)
model.to(device)
x.to(device) 理解:
CPU Tensor
GPU Tensor
Device mismatch 本阶段输出
pytorch/
├── custom_module.py
├── save_load_model.py
└── gpu_training.py 7. Stage 5:第 6 章 卷积神经网络
建议:Week 5~6
对 CV 方向来说,这是最重要的章节之一。
6.1 从全连接层到卷积
优先级:S
重点理解:
Locality
Translation Equivariance
Parameter Sharing 6.2 图像卷积
优先级:S++
必须手算一次卷积。
理解:
Kernel
Feature Map
Cross-Correlation
Edge Detection 必做:
def corr2d(X, K):
... 6.3 填充和步幅
优先级:S
必须熟练计算卷积输出尺寸。
看到:
Input 224×224
Kernel 3
Stride 2
Padding 1 可以快速算出输出。
6.4 多输入多输出通道
优先级:S++
理解:
Input:
[B, Cin, H, W]
Kernel:
[Cout, Cin, Kh, Kw]
Output:
[B, Cout, Hout, Wout] 重点理解 1×1 Convolution:
空间信息基本不变
↓
通道融合
↓
改变 Channel 6.5 汇聚层
优先级:S
理解:
Max Pooling
Average Pooling
Global Average Pooling 6.6 LeNet
优先级:S
不要因为模型老就跳。
独立实现并打印每层 shape:
Input
Conv
Pool
Conv
Pool
Flatten
FC
Output Week 5~6 输出
notes/
├── convolution.md
├── padding_stride.md
├── channels.md
├── pooling.md
└── lenet.md
from_scratch/
└── conv2d.py
pytorch/
└── lenet.py 8. Stage 6:第 7 章 现代卷积神经网络
建议:Week 7
7.1 AlexNet
优先级:A
理解:
更深 CNN
ReLU
Dropout
Data Augmentation
GPU 7.2 VGG
优先级:A
理解:
Block
3×3 Convolution
Repeated Architecture 重点学习模块化网络设计。
7.3 NiN
优先级:B
理解:
1×1 Conv
Global Average Pooling 7.4 GoogLeNet
优先级:A
重点:
Inception
Multi-scale
Parallel Branch
Feature Fusion 7.5 Batch Normalization
优先级:S++
必须弄清:
training
inference
running mean
running variance
gamma
beta 7.6 ResNet
优先级:S+++
这是 CNN 部分最重要的模型。
必须回答:
1. 什么是 degradation problem?
2. Residual Learning 为什么更容易?
3. Skip Connection 对梯度传播有什么帮助?
4. 输入输出 Channel 不一样时怎么办? 必做:
class ResidualBlock(nn.Module):
... 7.7 DenseNet
优先级:B / A
理解:
feature reuse
dense connection
concat Week 7 输出
notes/
├── alexnet.md
├── vgg.md
├── inception.md
├── batchnorm.md
├── resnet.md
└── densenet.md
from_scratch/
├── batchnorm.py
└── residual_block.py
pytorch/
└── resnet_small.py 9. Stage 7:第 11 章 优化算法(提前学习)
建议:Week 8
11.1 优化和深度学习
优先级:S
理解:
Training Loss
Optimization
Generalization 不要把 loss 降得快等同于泛化一定好。
11.2 凸性
优先级:B
理解凸函数/非凸函数基本概念。
11.3 梯度下降
优先级:S
11.4 SGD
优先级:S
理解随机梯度的 noise 和 efficiency。
11.5 Mini-batch SGD
优先级:S
理解 Batch Size 影响:
显存
训练速度
梯度噪声
泛化 11.6 Momentum
优先级:S
理解为什么 Momentum 可以减少震荡。
11.7 AdaGrad
优先级:B
理解思想即可。
11.8 RMSProp
优先级:A
理解为什么修正 AdaGrad。
11.9 Adadelta
优先级:C/B
浏览。
11.10 Adam
优先级:S
必须理解:
First Moment
Second Moment
Bias Correction
Adaptive Learning Rate 11.11 学习率调度器
优先级:S
理解:
Step Decay
Cosine
Warmup Week 8 必做实验
同一模型比较:
SGD
SGD + Momentum
Adam 固定其他条件,比较:
Training Loss
Validation Accuracy
Convergence Speed
Stability 10. Stage 8:第 8~9 章 RNN 精选学习
建议:Week 9 前半
你的主线是 CV,因此目标只有一个:
理解 Transformer 出现之前,序列是怎么建模的。
第 8 章建议
- 8.1 序列模型:A
- 8.2 文本预处理:B
- 8.3 语言模型和数据集:B
- 8.4 RNN:S
- 8.5 RNN 从零实现:A
- 8.6 简洁实现:A
- 8.7 BPTT:S
重点理解:
Hidden State
Temporal Dependency
Parameter Sharing
Backpropagation Through Time
Vanishing Gradient
Exploding Gradient 第 9 章建议
- GRU:A
- LSTM:A
- 深度 RNN:B
- 双向 RNN:A
- 机器翻译:B
- Encoder-Decoder:A
- Seq2Seq:A
- Beam Search:C/B
11. Stage 9:第 10 章 注意力机制与 Transformer
建议:Week 9 后半~Week 10
这是继 CNN/ResNet 后第二个必须彻底突破的模块。
10.1 注意力提示
优先级:S
建立直觉:
模型不必对所有输入位置给予相同关注。
10.2 Nadaraya-Watson
优先级:B
理解“加权汇聚”思想即可。
10.3 注意力评分函数
优先级:S
理解:
Query
Key
Value
Attention Score
Softmax
Weighted Sum 10.4 Bahdanau Attention
优先级:A
理解 Attention 如何帮助 Seq2Seq。
10.5 多头注意力
优先级:S++
理解:
Head 1
Head 2
...
Concat
Linear 10.6 自注意力和位置编码
优先级:S+++
必须回答:
1. Q、K、V 到底是什么?
2. 为什么 QK^T 可以表示相关性?
3. 为什么除以 sqrt(dk)?
4. Self-Attention 为什么可以建模全局关系?
5. 为什么需要 Positional Encoding? 10.7 Transformer
优先级:S+++
必须自己画:
Input
↓
Embedding
↓
Position Encoding
↓
Multi-Head Attention
↓
Add & Norm
↓
FFN
↓
Add & Norm 并理解:
Encoder
Decoder
Residual Connection
LayerNorm
FFN
Mask Week 10 输出
notes/
├── attention.md
├── multi_head_attention.md
├── self_attention.md
├── positional_encoding.md
└── transformer.md
from_scratch/
└── attention.py
pytorch/
└── transformer_block.py 12. Stage 10:补充 Vision Transformer
中文版 D2L 第二版传统目录中,Transformer 重点仍来自序列建模;英文在线版还包含 Transformers for Vision。对于 CV 方向,这部分值得补。
建议:Week 11 前半
必须理解:
Patch
Image
↓
Patches
↓
Tokens Patch Embedding
图片如何变成:
[B, N, D] 其中:
B = batch
N = number of patches
D = embedding dimension Position Embedding
图像 patch 同样需要位置信息。
Transformer Encoder
理解 ViT 主体。
CLS Token
理解它如何用于分类。
CNN vs ViT
| CNN | ViT |
|---|---|
| Local Bias 强 | Global Modeling 强 |
| 卷积 | Self-Attention |
| 天生局部性 | 数据驱动关系 |
| 参数共享 | Token Interaction |
13. Stage 11:第 13 章 计算机视觉
建议:Week 11~12
13.1 图像增广
优先级:S
掌握:
flip
crop
resize
color jitter
random erasing 医学图像中尤其要谨慎:不是所有增强都具有医学合理性。
13.2 微调
优先级:S++
必须理解:
Pretrained Model
Feature Extractor
Fine-tuning
Learning Rate
Frozen Layer 13.3 目标检测和边界框
优先级:A
理解:
Bounding Box
IoU
Detection 13.4 锚框
优先级:A
13.5 多尺度目标检测
优先级:A
对小目标检测尤其重要。
13.6 检测数据集
优先级:B
13.7 SSD
优先级:A/B
理解 one-stage detection。
13.8 R-CNN 系列
优先级:A
理解:
R-CNN
Fast R-CNN
Faster R-CNN 的演化。
13.9 语义分割
优先级:A
医学图像常见。
13.10 转置卷积
优先级:A
13.11 FCN
优先级:A
13.12 风格迁移
优先级:C
当前可以跳。
13.13 CIFAR-10 Kaggle
优先级:S / 项目
推荐实际做,把前面内容串起来:
Dataset
Augmentation
CNN/ResNet
Optimizer
Scheduler
Training
Validation
Save Model 13.14 Dogs
优先级:C/B
有余力再做。
14. 暂时不作为主线的内容
第 12 章 计算性能
当前优先级:B/C
先了解:
GPU
多 GPU 基本概念 以后真正训练大模型/大数据时再深入。
第 14 章 NLP 预训练
当前不是主线。
建议:
- word2vec:B
- GloVe:C
- BERT:A,以后做多模态、医学文本、Vision-Language、LLM 时再精学。
15. 12 周执行表
| 周次 | D2L 内容 | 深度 | 主要产出 |
|---|---|---|---|
| Week 1 | 第2章 | S | Tensor + Autograd |
| Week 2 | 第3章 | S | Linear + Softmax From Scratch |
| Week 3 | 4.1~4.3、4.7 | S | MLP + BP |
| Week 4 | 4.4~4.9 | S | Generalization 实验 |
| Week 5 | 第5章 + 6.1~6.3 | S | 自定义 Module + Conv |
| Week 6 | 6.4~6.6 | S | LeNet + Shape 分析 |
| Week 7 | 第7章 | S/A | ResNet + BN |
| Week 8 | 第11章 | S/A | Optimizer 对比 |
| Week 9 | 第8~9章精选 + 10.1~10.4 | A/S | RNN → Attention |
| Week 10 | 10.5~10.7 | S | Self-Attention + Transformer |
| Week 11 | ViT + 13.1~13.2 | S | ViT 理解 + Fine-tuning |
| Week 12 | 第13章精选 + 科研迁移 | A/S | CIFAR + Model Audit |
16. 每一节到底怎么学?
统一采用:
Read
↓
Explain
↓
Derive
↓
Code
↓
Experiment
↓
Review
↓
Research Transfer Step 1:Read
阅读教材。
Step 2:Explain
关掉教材,用自己的话讲:
它是什么?
为什么需要?
解决什么问题? Step 3:Derive
重要公式:
自己写一遍
检查 shape
理解每个符号 Step 4:Code
核心章节:
From Scratch
+
PyTorch Step 5:Experiment
改变一个变量:
learning rate
batch size
dropout
optimizer Step 6:Review
第二天不看笔记回忆。
Step 7:Research Transfer
问:
我的科研模型中有没有这个东西?
17. 每章笔记标准模板
# 知识点名称
## 1. 它解决什么问题?
## 2. 核心思想
## 3. 数学公式
## 4. Tensor Shape
## 5. From Scratch
## 6. PyTorch API
## 7. 常见错误
## 8. 实验现象
## 9. 和其他方法的区别
## 10. 在我的科研中如何使用?
## 11. 我还没弄懂的问题 18. 必须 From Scratch 的内容
Linear Regression
Softmax
MLP
Gradient / Autograd Demo
Dropout
Conv2D
BatchNorm
Residual Block
Attention Transformer 只需:
理解模块
+
写简化 Block 不需要从零复刻完整训练系统。
19. 必须闭卷实现的内容
完成 D2L 后,应该能不看模板写:
Dataset / DataLoader
Model
Forward
Loss
Optimizer
Training Loop
Validation Loop
Metric
Checkpoint
Device 以及至少:
MLP
Simple CNN
Residual Block 20. GitHub 仓库建议按这个顺序组织
d2l-learning/
│
├── README.md
├── roadmap/
│ └── learning-roadmap.md
│
├── 01_foundation/
│ ├── notes/
│ └── code/
│
├── 02_linear_network/
│ ├── notes/
│ └── code/
│
├── 03_mlp/
│ ├── notes/
│ ├── code/
│ └── experiments/
│
├── 04_deep_learning_computation/
├── 05_cnn/
├── 06_modern_cnn/
├── 07_optimization/
├── 08_rnn_selected/
├── 09_attention_transformer/
├── 10_vit/
├── 11_cv_applications/
├── 12_research_transfer/
├── weekly_review/
└── assets/ 相比单纯按教材章节号组织,这种结构更能体现:
这是你自己的能力成长仓库,而不仅是教材代码搬运。
21. 每完成一个阶段,GitHub 应该提交什么?
例如学习 ResNet:
06_modern_cnn/
├── notes/
│ └── resnet.md
├── code/
│ ├── residual_block.py
│ └── resnet18.py
├── experiments/
│ ├── baseline.json
│ ├── resnet.json
│ └── result.md
└── figures/
└── training_curve.png Commit 可以写:
feat: implement residual block from scratch
docs: add notes on residual learning
exp: compare plain CNN with ResNet 22. 学习时哪些内容必须手写公式?
至少包括:
Linear Regression
MSE
Softmax
Cross Entropy
Chain Rule
Backpropagation
L2 Regularization
Convolution Output Size
BatchNorm
SGD
Momentum
Adam 基本思想
Scaled Dot-Product Attention 23. 哪些内容必须画图?
至少画:
Computational Graph
MLP
CNN
LeNet
VGG Block
Inception
Residual Block
RNN Hidden State
Attention QKV
Multi-Head Attention
Transformer Encoder
ViT 24. 哪些内容和医学AI科研关系最大?
优先级最高:
Generalization
Distribution Shift
CNN
Feature Extraction
ResNet
BatchNorm
Fine-tuning
Data Augmentation
Attention
Transformer
Experiment Design Distribution Shift
医学数据常见:
不同医院
不同设备
不同人群
不同扫描参数
不同数据中心 Fine-tuning
医学数据往往不如 ImageNet 大,预训练模型 + 微调很常见。
Attention / Multimodal
对于:
图像 + 临床信息
病理 + 分子信息
多模态生存分析 非常重要。
25. D2L 学完以后不要立即从头刷第二遍
正确做法:
D2L 第一遍
↓
自己的项目
↓
发现不会
↓
回到相关章节
↓
第二遍定点复习 例如:
模型过拟合 → 回看:
4.4
4.5
4.6 ResNet backbone → 回看:
7.6 Cross Attention → 回看:
10.3
10.5
10.6 26. 最终验收:学完 D2L 应达到什么程度?
理论
- 能解释梯度下降
- 能解释 Backpropagation
- 能解释 Overfitting
- 能解释 CNN
- 能解释 BatchNorm
- 能解释 ResNet
- 能解释 Adam
- 能解释 Attention
- 能解释 Transformer
- 能解释 ViT
数学
- 看懂基本公式
- 能检查 Tensor Shape
- 能手算简单梯度
- 能算卷积输出大小
- 能解释 Attention 公式
编程
- 独立写 Training Loop
- 独立写 Validation Loop
- 独立写 MLP
- 独立写 CNN
- 独立写 Residual Block
- 能保存/加载模型
- 能使用 GPU
- 能 Debug shape/device/loss 问题
实验
- 会比较 optimizer
- 会看 train/val 曲线
- 会判断过拟合
- 会调 learning rate
- 会做 baseline
- 会做 ablation
- 会记录实验
科研
- 能读模型结构图
- 能看懂 CV 论文主体
- 能解释一个模块为什么存在
- 能复现 baseline
- 能修改模块
- 能设计基本消融实验
- 能解释实验结果
27. 时间不足时的保留顺序
第一优先级:绝对不能砍
2.1 Tensor
2.3 Linear Algebra
2.4 Calculus
2.5 Autograd
3.1~3.7 Linear / Softmax
4.1~4.8 MLP / Generalization / BP
5.1 Module
5.4 Custom Layer
5.5 Save
5.6 GPU
6.1~6.6 CNN
7.5 BatchNorm
7.6 ResNet
11.3~11.6 Gradient / SGD / Momentum
11.10 Adam
11.11 Scheduler
10.3 Attention Score
10.5 Multi-Head
10.6 Self-Attention
10.7 Transformer
ViT
13.1 Augmentation
13.2 Fine-tuning 第二优先级
7.1 AlexNet
7.2 VGG
7.4 GoogLeNet
7.7 DenseNet
8.4 RNN
8.7 BPTT
9.1 GRU
9.2 LSTM
9.6 Encoder-Decoder
9.7 Seq2Seq
13.3~13.11 Detection / Segmentation 第三优先级
历史介绍
Kaggle 房价
复杂 RNN 细节
Beam Search
系统性能深层内容
Style Transfer
完整 NLP 预训练体系 28. 最适合你的最终学习主线
最终不要形成:
D2L Chapter 1
D2L Chapter 2
D2L Chapter 3
... 而应该在脑子里形成:
数学基础
↓
自动微分
↓
模型
↓
Loss
↓
Backprop
↓
Optimization
↓
Generalization
↓
CNN
↓
Representation Learning
↓
ResNet
↓
Attention
↓
Transformer
↓
ViT
↓
Medical AI
↓
Survival Analysis
↓
科研创新 你的目标不是“学会 D2L”。
而是借 D2L 完成一次:
从会借助 AI 做深度学习项目,到自己真正理解深度学习模型、训练过程和科研实验的能力升级。
29. 官方学习入口
中文版 D2L
英文版 D2L
英文在线版可重点补充:
Transformers for Vision PyTorch Tutorials
https://docs.pytorch.org/tutorials/
30. 一句话执行原则
以后每学习 D2L 一节,都问自己:
我能解释吗?
我能算吗?
我能写吗?
我能实验吗?
我能把它用到自己的科研里吗? 只有前四个甚至五个都能回答“可以”,这一节才算真正学完。
0 次表情反馈 · 0 条评论