Learning Focus
学习目标
把每节内容压缩成可以直接执行的工程判断,阅读时优先看目标,再看代码。
Focus 01
训练循环通常包括清零梯度、前向计算、损失计算、反向传播和优化器更新。
Focus 02
验证集用于观察泛化能力,不能用来直接训练参数。
Focus 03
保存模型时要记录模型结构、权重和必要的预处理信息。
理解方式
先把概念放进完整系统中理解,再用最小代码或配置确认它如何工作。
- 它解决什么问题。
- 它依赖什么组件。
- 它失败时怎么处理。
示例
代码示例突出最小可理解片段,用来连接概念和工程实践。
for x, y in train_loader:
optimizer.zero_grad()
pred = model(x)
loss = criterion(pred, y)
loss.backward()
optimizer.step()
常见误区
- 只记配置项,不理解它在调用链路中的位置。
- 把示例代码直接搬进生产环境,没有补充超时、校验、日志和回退策略。
- 学习神经网络时只看框架 API,不检查输入输出形状和数据分布。
练习
解释为什么每次反向传播前需要 optimizer.zero_grad()。