本文主要是介绍Pytorch学习系列之八:迁移学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
注:来源于https://www.pytorch123.com/ThirdSection/TransferLearning/#8,本人在理解的基础上做了一些注释。
实际中,基本没有人会从零开始(随机初始化)训练一个完整的卷积网络,因为相对于网络,很难得到一个足够大的数据集[网络很深, 需要足够大数据集]。通常的做法是在一个很大的数据集上进行预训练得到卷积网络ConvNet, 然后将这个ConvNet的参数作为目标任务的初始化参数或者固定这些参数。
转移学习的两个主要场景:
微调Convnet:使用预训练的网络(如在imagenet 1000上训练而来的网络)来初始化自己的网络,而不是随机初始化。其他的训练步骤不变。
将Convnet看成固定的特征提取器:首先固定ConvNet除了最后的全连接层外的其他所有层。最后的全连接层被替换成一个新的随机 初始化的层,只有这个新的层会被训练[只有这层参数会在反向传播时更新]
下面是利用PyTorch进行迁移学习步骤,要解决的问题是训练一个模型来对蚂蚁和蜜蜂进行分类。
'''
1.导入相关的包
'''
import torch
import torch.nn as nn
import torch.optim as optim
from torch.optim import
这篇关于Pytorch学习系列之八:迁移学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!