基于PyTorch的深度学习——迁移学习1

声明一下内容来源于基于PyTorch的深度学习

迁移学习是一种机器学习方法,简单来说,就是把任务A开发的模型作为初始点,重新使用在任务B中,比如,A任务可以是识别图像中车辆,而B任务可以是识别卡车、识别轿车、识别公交车等

在神经网络迁移学习中,主要有两个应用场景:特征提取和微调。

• 特征提取(Feature Extraction):冻结除最终完全连接层之外的所有网络的权重。最后一个全连接层被替换为具有随机权重的新层,并且仅训练该层。

• 微调(Fine Tuning):使用预训练网络初始化网络,而不是随机初始化。用新数据训练部分或整个网络。

先来讲特征提取部分

python 复制代码
import torchvision.models as models

resnet18 = models.resnet18()
alexnet = models.alexnet()
vgg16 = models.vgg16()
  • 模型结构被创建 ,但所有参数(权重)是随机初始化的。
  • 相当于从零开始训练一个新模型(scratch training)。
  • 适用于:
    • 你不打算用迁移学习;
    • 或你有大量自有数据,想完全重新训练;
    • 或只是做模型结构测试。

如果要获取预训练模型应该这么做

python 复制代码
resnet18 = models.resnet18(weights=models.ResNet18_Weights.IMAGENET1K_V1)
alexnet = models.alexnet(weights=models.AlexNet_Weights.IMAGENET1K_V1)
vgg16 = models.vgg16(weights=models.VGG16_Weights.IMAGENET1K_V1)
  • 不仅创建了模型结构,还自动下载并加载了在 ImageNet 数据集上训练好的权重
  • 这些权重是官方提供的、经过充分训练的高质量参数。
  • 模型开箱即用 ,可直接用于:
    • 图像分类推理(对自然图像效果很好);
    • 迁移学习(如特征提取或微调)。

✅ 这是迁移学习的标准起点

注意,有的模型训练和测试阶段用到了不同的模块,比如说batch normalization, dropout层等。使用model.train()或model.eval()可以切换到相应的模式。

所有的预训练模型都要求输入图片以相同的方式进行标准化,即:小批(Mini-Batch)3通道RGB格式(3×H×W),其中H和W应小于224。图片加载时像素值的范围应在[0,1]内,然后通过指定mean=[0.485,0.456,0.406]和std=[0.229,0.224,0.225]进行标准化,例如:

python 复制代码
normalize = transforms.Normalize(mean=[0.485,0.456,0.406]
                                 std=[0.229,0.224,0.225])

如何冻结某些层?

如果需要冻结最后一层之外的所有层,设置requires_grad==False, 反向传播中不计算梯度了。

python 复制代码
model = torchvision.models.resnet18(pretrained=True)
# 冻结所有参数
for param in resnet18.parameters():
    param.requires_grad = False

# 替换最后的分类层(适配自己的任务,比如 10 类)
resnet18.fc = torch.nn.Linear(resnet18.fc.in_features, 10)
相关推荐
LaughingZhu2 分钟前
Product Hunt 每日热榜 | 2026-05-09
人工智能·经验分享·深度学习·神经网络·产品运营
罗小罗同学6 分钟前
华西医院联合多伦多大学、盛京医院等机构发布多模态智能体检索模型,实现 AI 循证推理全链条权威可溯
大数据·人工智能·机器学习·医工交叉·医学ai
码上掘金24 分钟前
基于深度学习的行人计数与人群密度分析系统设计与实现
人工智能·深度学习
数智工坊3 小时前
基于CLIP隐空间的层级文本条件图像生成:unCLIP核心原理与全链路解析
论文阅读·人工智能·深度学习·transformer·迁移学习
雪回3 小时前
基于 Stable Diffusion-WebUI 实现 LandPPT 本地模型绘图配置指南(SDWebUI )
人工智能·深度学习·ai·ai作画·stable diffusion·ppt
AI浩4 小时前
基于双重提示驱动的特征编码用于夜间无人机跟踪
人工智能·机器学习·目标跟踪·无人机
龙亘川4 小时前
城市更新×智慧治理:老旧小区改造中的数字化创新实践
java·大数据·人工智能·机器学习·智慧城市
renhongxia15 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·生成对抗网络·语言模型·自然语言处理
极光代码工作室5 小时前
基于NLP的智能问答系统设计
python·深度学习·自然语言处理·nlp
我没胡说八道5 小时前
毕业论文降 AI 率工具横评:谁才是 AI 检测的 “破局者”?
人工智能·经验分享·深度学习·考研·论文