
本课学习重点
- 预训练模型
- 特征提取
- 微调
先从一个具体问题出发
只有 600 张工地安全帽图片
从零训练大型视觉网络通常需要大量数据和算力。预训练模型已经在海量图片中学过边缘、纹理和常见形状,我们可以保留这些能力,只为新任务学习较小的一部分。
COMPUTER VISION
通过数据量和任务相似度实验,理解预训练、特征提取、微调与迁移策略。
这一课要回答:迁移学习:用已有模型解决新问题建立必要的基础概念
先认识三个关键词
先看每个概念负责什么,再把它们放回完整流程。无需先记公式,先建立直觉。
先在大数据上学习通用特征
它不是现成答案,而是一个较好的参数起点。
冻结主干,只训练新分类头
数据少、任务相似时更快,也更不易破坏已有能力。
用小学习率调整部分主干
数据更充足或领域差异较大时,让高层特征适应新任务。
把概念连接成流程
完成一次迁移学习
按顺序走一遍,观察每一步的输入、动作与输出。
- 01
选择相近的预训练模型
检查输入尺寸、许可证、速度和基准任务。
- 02
替换输出层
让类别数量与自己的任务一致。
- 03
先冻结并训练分类头
建立可靠基线,观察验证表现。
- 04
按需解冻微调
使用较小学习率,并持续监控过拟合。
互动实验 · 动手建立直觉
根据数据与相似度选择迁移策略
调整标注数量和领域相似度,看看更适合特征提取、部分微调还是从头训练。
建议起点冻结主干
先做特征提取,只训练新分类头。
知道模型能做什么,也知道不能做什么
三个容易忽略的边界
技术名词描述的是一种计算方法。真正用于产品时,还要检查数据、指标、成本与使用场景。
源任务偏差也会被带来
预训练数据的缺口与偏差可能迁移到新场景。
任务差异过大时收益有限
自然图片特征不一定适合医学扫描或遥感波段。
仍需自己的验证集
预训练模型强大,也不能替代目标场景的独立评估。
可选代码实践 · 逐行理解
冻结主干,只训练新分类头
代码只呈现本课最关键的计算路径。先根据注释理解每一步,再放进完整项目。
course-08.py
from torchvision.models import resnet18, ResNet18_Weights
import torch.nn as nn
model = resnet18(weights=ResNet18_Weights.DEFAULT)
for parameter in model.parameters():
parameter.requires_grad = False
input_features = model.fc.in_features
model.fc = nn.Linear(input_features, 2)- 步骤 1
DEFAULT 会加载官方预训练权重及对应的预处理信息。
- 步骤 2
冻结后主干参数不会在反向传播中更新。
- 步骤 3
新建的全连接层输出 2 个分数,可用于安全帽二分类。
知识检查与课程总结
确认你能把概念讲清楚
完成三个问题,再用五句话回顾本课主线。
已回答 0 / 3 题 · 当前答对 0 题
- 预训练权重是更好的起点,不是新任务的最终答案。
- 数据少且任务相似时可先做特征提取。
- 微调会更新部分预训练参数。
- 解冻越多,对数据量与训练控制的要求越高。
- 模型来源、许可证和目标场景验证同样重要。
下一课 · COURSE 09
图像分类、检测与分割
围绕同一张图片,区分三类视觉任务的输入、输出与标注成本。