如何使用预训练模型

一、思路

首先要考虑目标模型的数据量目标数据与源数据的相关性
一般要根据数据集与预训练模型数据集的不同相似度,采用不同的处理方法。
在这里插入图片描述
上图中
1、数据集小,数据相似度高
理想情况,可以将预训练模型当做特征提取器使用,所以有时候称为特征抽取。
做法:去掉输出层,将剩下的整个网络当做一个固定的特征提取机,应用到新的数据集中。
在这里插入图片描述
2、数据集大,数据相似度高
冻结预处理模型中少量较低层修改分类器,然后在新数据集的基础上重新开始训练。
在这里插入图片描述
3、数据集小,数据相似度不高
冻结预训练模型中较少的网络高层,然后重新训练后面的网络,修改分类器。相似度不高,so 重新训练的过程很关键!!
数据集大小不足这方面通过冻结预训练模型中一些较低的网络层进行弥补。
在这里插入图片描述

4、数据集大,数据相似度不大
大数据集,NN的训练过程比较有效率。但相似度不高时,预训练模型会很不高效,to do:将预训练模型中的权重全都初始化后再到新数据集的基础上重新开始训练。
在这里插入图片描述
【注】具体操作时,往往会同时尝试多种方法,从其中选最优。

二、获取预训练模型

1、PyTorch的工具包torchvision中的models模块(torchvision.models),使用时需设置 pretrained=True
2、tensorflow.keras.application 或 可以在TensorFlowHub网站(https://tfhub.dev/google/)上下载。
3、huggingFace-transformers(NLP预训练模型库)

Logo

更多推荐