国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

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

pytorch載入預訓練模型后,實現(xiàn)訓練指定層

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

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

1、有了已經(jīng)訓練好的模型參數(shù),對這個模型的某些層做了改變,如何利用這些訓練好的模型參數(shù)繼續(xù)訓練:

?
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 使得預訓練模型參數(shù)中和新模型對應上的參數(shù)會被載入,對應不上或沒有的參數(shù)被拋棄。

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

?
1
2
3
4
5
6
7
8
# 載入預訓練模型參數(shù)后...
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)

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

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

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

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

?
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,那么在將參數(shù)傳入優(yōu)化器時:

?
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參數(shù)的learning_rate=1e-4 外,其他參數(shù)的額learning_rate=1e-6。

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

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

參考:

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 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久av一区二区三区 | 亚洲精品视频一区二区三区 | 中文天堂在线观看视频 | 日本动漫一区 | 97久久精品人人澡人人爽 | 免费一区二区三区四区 | 自拍偷拍av | 国产一区二区三区四区 | 这里只有精品国产 | 成人区精品一区二区婷婷 | 国产中文一区 | 国产在线综合视频 | 日韩在线一区二区三区 | 精品国产久 | 中文字幕一区二区三区在线观看 | 久久av一区二区三区 | 日韩中文字幕在线 | 久久99这里只有精品 | 久热精品在线视频 | 国产亚洲精品久久久久久 | 国产高清在线看 | 国产欧美精品一区二区三区四区 | 精品国产乱码久久久久久88av | 中文字幕精品一区久久久久 | 精品中文字幕一区 | 欧美福利视频 | 欧洲精品视频在线观看 | 欧美三区二区一区 | 国产高清一区二区 | 美女国产精品 | 日韩一级片| 黄a视频| 亚洲精品国产精品国自产在线 | 国产欧美综合视频 | 97久久超碰| 国产精品久久久久久久久久免费看 | 成人久久久 | 亚洲第一成av人网站懂色 | 秋霞午夜| 亚洲视频综合 | 日韩成人免费中文字幕 |