Transfer learning using Pytorch

迁移学习的两种基本应用场景:

1 模型初始化又叫做 finetuning, 一般的模型初始化是一个随机初始,但是使用训练好的参数作为初始化,可能模型会更快的收敛和有更好的表现性能。

2 将训练好的模型及其参数固定,在该模型后面增加新的网络或者在训练好的模型中间,替换新的网络,以期达到一种固定预定义的特征选择器作用。


1 模型初始化


加载预训练模型,然后将最后的全连接层的输出层替换成新的全连接,使输出有2类,当替换新的连接层以后,我们开始新的训练任务。

2 固定的特征提取器

这里我们需要冻结网络的梯度更新,除了最后的全连接层,通过设置特征提取网络的requires_grad=False 来冻结训练好的参数,这样他们在loss.backward中,就不会计算梯度并更新参数了。当我们替换掉原始网络中的某一层网络时,新的这一层网络的requires_grad=True, 所以在训练和loss.backward中会计算梯度并更新参数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容