Fine Tuning

Fine Tuning

@Langs: python, torch
@reference: d2l-pytorch,transfer_torch

This Note focus on the code part.
模型微调和模型预训练,在Pytorch中的使用方式对比汇总。

How to Design the Fine Tune

这一部分主要集中于我们对于微调任务的拆解,有几种不同的预训练和微调的方式,在不同的情景下,对应的参数应该怎么设置和调整是问题的重点。

WorkFlow

基于这种Transfer的策略,我们能够学习到一个更通用,泛化能力更强,有助于识别边缘,色彩,等等有助于下游任务的通用特征提取。

在Transfer任务中,有几种不同的调整方式:

  • 固定Bakcbone,只训练Classifier
  • 同步微调网络
  • 区分学习率,微调Backbone,训练Classifirer

为了实现这几种不同的Transfer方式,需要用到以下的几种方式:梯度截断,lr区分设置等。

Code Part

不同lr设置

微调Backbone,训练Classifier作为最经典的Transfer设定,在Code上也较为复杂,所以我们首先举个这种例子。