cs231n notes
pytorch官方實現transfer learning
Pytorch_fine_tuning_Turtorial
cs231n notes
transfer learning
- 特征提取器:將預訓練模型當成固定的模型,進行特征提取;然后構造分類器進行分類
- 微調預訓練模型:可以將整個模型都進行參數更新,或者凍結前半部分網絡,對后半段網絡進行參數更新,因為前半段網絡提取的是通用的低級特征, 后半段提取的是與數據集有關的特征
How to fine-tune
- 新數據集小,與原始數據集類似:只訓練最后的分類器
- 新數據集大,與原始數據集類似:微調整個網絡或前半段網絡
- 新數據集小,與原始數據集不類似:都不太合適,但可以試試對網絡某一層的激活函數進行分類
- 新數據集大,與原始數據集不類似:重新訓練整個模型,但是使用預訓練的參數作為初始化
注意事項
- 數據維度需要注意匹配,尤其fc層
- 微調模型的時候,對於預訓練模型的學習率要較小,對新的分類層的學習率要較大,因為我們不想破壞預訓練模型的參數
Pytorch_fine_tuning_Turtorial
- 使用imagenet的訓練過程,值得借鑒,並且有詳細的講解