激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pytorch載入預訓練模型后,實現訓練指定層

pytorch載入預訓練模型后,實現訓練指定層

2020-05-08 09:59慕白- Python

今天小編就為大家分享一篇pytorch載入預訓練模型后,實現訓練指定層,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、有了已經訓練好的模型參數,對這個模型的某些層做了改變,如何利用這些訓練好的模型參數繼續訓練:

?
1
2
3
pretrained_params = torch.load('Pretrained_Model'
model = The_New_Model(xxx)
model.load_state_dict(pretrained_params.state_dict(), strict=False)

strict=False 使得預訓練模型參數中和新模型對應上的參數會被載入,對應不上或沒有的參數被拋棄。

2、如果載入的這些參數中,有些參數不要求被更新,即固定不變,不參與訓練,需要手動設置這些參數的梯度屬性為Fasle,并且在optimizer傳參時篩選掉這些參數:

?
1
2
3
4
5
6
7
8
# 載入預訓練模型參數后...
for name, value in model.named_parameters():
  if name 滿足某些條件:
    value.requires_grad = False
 
# setup optimizer
params = filter(lambda p: p.requires_grad, model.parameters())
optimizer = torch.optim.Adam(params, lr=1e-4)

將滿足條件的參數的 requires_grad 屬性設置為False, 同時 filter 函數將模型中屬性 requires_grad = True 的參數帥選出來,傳到優化器(以Adam為例)中,只有這些參數會被求導數和更新。

3、如果載入的這些參數中,所有參數都更新,但要求一些參數和另一些參數的更新速度(學習率learning rate)不一樣,最好知道這些參數的名稱都有什么:

?
1
2
3
4
5
# 載入預訓練模型參數后...
for name, value in model.named_parameters():
  print(name)
# 或
print(model.state_dict().keys())

假設該模型中有encoder,viewer和decoder兩部分,參數名稱分別是:

?
1
2
3
4
5
6
'encoder.visual_emb.0.weight',
'encoder.visual_emb.0.bias',
'viewer.bd.Wsi',
'viewer.bd.bias',
'decoder.core.layer_0.weight_ih',
'decoder.core.layer_0.weight_hh',

假設要求encode、viewer的學習率為1e-6, decoder的學習率為1e-4,那么在將參數傳入優化器時:

?
1
2
3
4
5
6
ignored_params = list(map(id, model.decoder.parameters()))
base_params = filter(lambda p: id(p) not in ignored_params, model.parameters())
optimizer = torch.optim.Adam([{'params':base_params,'lr':1e-6},
               {'params':model.decoder.parameters()}
               ],
               lr=1e-4, momentum=0.9)

代碼的結果是除decoder參數的learning_rate=1e-4 外,其他參數的額learning_rate=1e-6。

在傳入optimizer時,和一般的傳參方法torch.optim.Adam(model.parameters(), lr=xxx) 不同,參數部分用了一個list, list的每個元素有params和lr兩個鍵值。如果沒有 lr則應用Adam的lr屬性。Adam的屬性除了lr, 其他都是參數所共有的(比如momentum)。

以上這篇pytorch載入預訓練模型后,實現訓練指定層就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

參考:

pytorch官方文檔

原文鏈接:https://blog.csdn.net/weixin_36049506/article/details/89522860

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲综合无码一区二区 | 国产超碰人人做人人爱 | 国产精品一 | wwwxxx免费视频 | 斗罗破苍穹在线观看免费完整观看 | 亚洲情在线 | 亚洲电影在线观看高清免费 | 日本综合久久 | 欧美精品免费一区二区三区 | 国产高潮好爽受不了了夜色 | jj视频在线播放 | 欧美成人一区免费视频 | 亚洲欧美国产高清 | 91成人免费网站 | 91美女视频在线 | 免费毛片在线视频 | 奶子吧naiziba.cc免费午夜片在线观看 | 精品国产乱码久久久久久丨区2区 | 看免费5xxaaa毛片 | 亚洲一区在线看 | 在线看91 | 国产毛片在线 | 日本特级a一片免费观看 | 日韩视频一二三 | 蜜桃视频网站www | 精品国产看高清国产毛片 | 日本aaaa片毛片免费观看视频 | 日韩精品中文字幕一区二区三区 | 27xxoo无遮挡动态视频 | 狠狠干狠狠操 | 久色视频网站 | 欧美日韩激情 | 成人网视频 | 91成人免费在线观看 | 黄色毛片a级 | 激情综合婷婷久久 | 国产精品99久久久久久宅女 | 九九综合视频 | 亚洲第一成人在线观看 | 毛片免费在线播放 | 一级黄色片武则天 |