美文网首页
Pytorch 迁移学习

Pytorch 迁移学习

作者: dawsonenjoy | 来源:发表于2019-11-15 19:51 被阅读0次

概念

迁移学习简单来说就是使用别人已经训练好的模型的参数,并根据需求修改模型。比如vgg模型默认是输入一张三通道的图,并在最后一层输出包含1000个特征数的分类结果,假如我们的数据集特征只有10个,那么只需要把其模型的最后一层输出从1000改成10,然后将模型中除了最后一层的网络层都关闭权值更新,此时就可以将我们的训练集放入训练了。由于前面的层数都已经训练的很好了,此时基本就只需要训练模型的最后一层即可,从而达到消耗少、且收敛快的目的

简单示例

下面导入了torchvision中提供的vgg预训练模型,我们先取消模型的权重更新,并查看模型的结构:

import torch
from torch import nn
import torchvision
from torchvision import datasets

vgg = torchvision.models.vgg16(pretrained=True)
# 载入预训练好的vgg16模型

for param in vgg.parameters():
    param.requires_grad = False
# 取消所有层的权值更新

print(vgg)
# VGG(
#   (features): Sequential(
#     (0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
#     ...
#     (5): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
#     ...
#   (classifier): Sequential(
#     (0): Linear(in_features=25088, out_features=4096, bias=True)
#     ...
#     (6): Linear(in_features=4096, out_features=1000, bias=True)
#   )
# )

可以看到在模型的最后是一个序列模型,而序列模型的最后一层是一个输出为1000个特征的全连接层,此时我们如果特征只有10个,那么要修改的就只有这最后一层。而最后一层的属性名是classifier,所以我们的修改代码如下:

vgg.classifier[-1] = nn.Linear(4096, 10)
# 修改classifier层的最后一层

至此,我们就完成了对模型的修改,接下来直接训练就可以了~

更多示例参考

https://ptorch.com/news/138.html
https://blog.csdn.net/weixin_43845931/article/details/89304733

迁移学习技巧参考

https://blog.csdn.net/u011268787/article/details/80170482

相关文章

  • pytorch 迁移学习

    今天我们案例取材于 pytorch 的官方教程,使用迁移学习来训练神经网络来做图片分类。Finetuning th...

  • [PyTorch]迁移学习

    背景预训练模型使用的训练数据并非训练集,可能来自ImageNet数据库等用于图像分类,像素语义分割,对象检测,实例...

  • 迁移学习pytorch

    以VGG网络为例:1、只调整一层:以后禁止使用这种写法 2、调整整个classifier层:要调整把整个分类层都要...

  • Pytorch 迁移学习

    概念 迁移学习简单来说就是使用别人已经训练好的模型的参数,并根据需求修改模型。比如vgg模型默认是输入一张三通道的...

  • 迁移学习_pytorch简单实战

    迁移学习_pytorch实战 想学习一下迁移学习,则将使用预先训练的网络,来构建用于疟疾检测的图像分类器,这个分类...

  • 2019-04-29 手把手教你用pytorch实现迁移学习(第

    一 前言 1 前提条件: 这是一篇小白实现迁移学习的文章,本文不需要事先掌握Pytorch或者迁移学习的相关知识,...

  • 人人都是毕加索

    基于 Pytorch 和 VGG19 模型实现图片风格迁移。 相关 Pytorch 官方教程 相关 Github ...

  • Pytorch学习记录-使用Pytorch进行深度学习,迁移学习

    迁移学习(Transfer Learning)在完成60分钟入门之后,接下来有六节tutorials和五节关于文本...

  • 数据不足,如何进行迁移学习?

    摘要: 在没有足够的训练数据时,本文详细介绍了如何使用FloydHub、fast.ai和PyTorch进行迁移学习...

  • pytorch学习(十二)—迁移学习Transfer Learn

    前言 在训练深度学习模型时,有时候我们没有海量的训练样本,只有少数的训练样本(比如几百个图片),几百个训练样本显然...

网友评论

      本文标题:Pytorch 迁移学习

      本文链接:https://www.haomeiwen.com/subject/uilsictx.html