
本课学习重点
- Dataset
- DataLoader
- 训练循环
先从一个具体问题出发
识别 10 类服饰图片
FashionMNIST 包含 28×28 灰度服饰图片,规模适中、类别直观。这个项目的目标不是追求最高分,而是亲手走完数据、模型、训练、评估与预测的完整流程。
GENERATE & BUILD
以 FashionMNIST 为例完成数据加载、CNN 搭建、训练、验证、测试和单张预测。
这一课要回答:用 PyTorch 完成第一个图像分类项目建立必要的基础概念
先认识三个关键词
先看每个概念负责什么,再把它们放回完整流程。无需先记公式,先建立直觉。
定义样本与标签
每次按索引返回一张处理后的图片及其正确类别。
按批次高效读取
负责打乱训练数据、组合批次并可并行加载。
重复预测、计算损失与更新
每个批次都执行清零梯度、前向、反向和优化器更新。
把概念连接成流程
项目的六个检查点
按顺序走一遍,观察每一步的输入、动作与输出。
- 01
准备环境与数据
固定随机种子,检查图片形状和标签。
- 02
建立简单 CNN
先使用能解释、能快速训练的基线。
- 03
训练并记录
保存每轮训练损失和验证准确率。
- 04
独立测试与预测
加载最佳权重,查看总体指标和错误样本。
互动实验 · 动手建立直觉
按顺序完成训练流水线
点击每个项目步骤,查看输入、动作和应得到的检查结果。所有环节连通,才算完成可复现训练。
项目完成度0 / 5
还剩 5 个检查点。建议按顺序完成,遇到错误时更容易定位。
知道模型能做什么,也知道不能做什么
三个容易忽略的边界
技术名词描述的是一种计算方法。真正用于产品时,还要检查数据、指标、成本与使用场景。
先跑通基线,再增加复杂度
复杂模型不能修复错误标签、数据泄漏或评估流程问题。
准确率不是唯一答案
类别不均衡时还要查看混淆矩阵、精确率和召回率。
保存环境与参数
随机种子、依赖版本和配置决定结果是否可复现。
可选代码实践 · 逐行理解
完整训练循环的核心
代码只呈现本课最关键的计算路径。先根据注释理解每一步,再放进完整项目。
course-15.py
for images, labels in train_loader:
images, labels = images.to(device), labels.to(device)
optimizer.zero_grad()
logits = model(images)
loss = criterion(logits, labels)
loss.backward()
optimizer.step()
model.eval()
with torch.no_grad():
test_logits = model(test_images)
predictions = test_logits.argmax(dim=1)- 步骤 1
一个批次先移到 CPU 或 GPU,再由模型产生 10 类原始分数。
- 步骤 2
清零梯度后反向传播,优化器使用本批次梯度更新参数。
- 步骤 3
评估阶段关闭梯度,减少内存和计算;argmax 取得最高分对应类别。
知识检查与课程总结
确认你能把概念讲清楚
完成三个问题,再用五句话回顾本课主线。
已回答 0 / 3 题 · 当前答对 0 题
- Dataset 定义样本,DataLoader 组织批次。
- 模型输出 logits,损失函数将它与标签比较。
- 训练循环包含清零、前向、反向和更新。
- 评估阶段不更新参数,并加载验证表现最佳的权重。
- 完整项目还要记录配置、检查错误样本并保存可复现结果。
DEEP LEARNING · 完成路线
你已经走完 15 门深度学习课程
可以返回课程路线复习,也可以下载本课代码继续实践。