一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 腳本之家 - Python - Pytorch實現網絡部分層的固定不進行回傳更新問題及思路詳解

Pytorch實現網絡部分層的固定不進行回傳更新問題及思路詳解

2021-12-24 00:35呆呆象呆呆 Python

這篇文章主要介紹了Pytorch實現網絡部分層的固定不進行回傳更新,實現思路就是利用tensor的requires_grad,每一個tensor都有自己的requires_grad成員,值只能為True和False,具體內容詳情跟隨小編一起看看吧

實際問題

Pytorch有的時候需要對一些層的參數進行固定,這些層不進行參數的梯度更新

問題解決思路

那么從理論上來說就有兩種辦法

  • 優化器初始化的時候不包含這些不想被更新的參數,這樣他們會進行梯度回傳,但是不會被更新
  • 將這些不會被更新的參數梯度歸零,或者不計算它們的梯度

思路就是利用tensorrequires_grad,每一個tensor都有自己的requires_grad成員,值只能為TrueFalse。我們對不需要參與訓練的參數的requires_grad設置為False

在optim參數模型參數中過濾掉requires_grad為False的參數。
還是以上面搭建的簡單網絡為例,我們固定第一個卷積層的參數,訓練其他層的所有參數。

代碼實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Net(nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        self.conv1 = nn.Conv2d(3,32,3)
        self.conv2 = nn.Conv2d(32,24,3)
        self.prelu = nn.PReLU()
        for m in self.modules():
            if isinstance(m,nn.Conv2d):
                nn.init.xavier_normal_(m.weight.data)
                nn.init.constant_(m.bias.data,0)
            if isinstance(m,nn.Linear):
                m.weight.data.normal_(0.01,0,1)
                m.bias.data.zero_()
    def forward(self, input):
        out = self.conv1(input)
        out = self.conv2(out)
        out = self.prelu(out)
        return out

遍歷第一層的參數,然后為其設置requires_grad

?
1
2
3
4
5
6
model = Net()
for name, p in model.named_parameters():
    if name.startswith('conv1'):
        p.requires_grad = False
        
optimizer = torch.optim.Adam(filter(lambda x: x.requires_grad is not False ,model.parameters()),lr= 0.2)

為了驗證一下我們的設置是否正確,我們分別看看model中的參數的requires_gradoptim中的params_group()

?
1
2
for p in model.parameters():
    print(p.requires_grad)

Pytorch實現網絡部分層的固定不進行回傳更新問題及思路詳解

能看出優化器僅僅對requires_gradTrue的參數進行迭代優化。

LAST 參考文獻

Pytorch中,動態調整學習率、不同層設置不同學習率和固定某些層訓練的方法_我的博客有點東西-CSDN博客

到此這篇關于Pytorch實現網絡部分層的固定不進行回傳更新的文章就介紹到這了,更多相關Pytorch網絡部分層內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_41554005/article/details/119899140

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性柔术18性13处交 | 帅小伙和警官同性3p | 午夜影院免费观看视频 | 男人午夜免费视频 | 欧美午夜视频一区二区 | 国产成人亚洲精品一区二区在线看 | 国产欧美日韩免费一区二区 | 日本大片免aaa费观看视频 | 午夜在线a亚洲v天堂网2019 | 亚洲国产精品高清在线 | 嫩草影院永久一二三入口 | 国产色在线观看 | 999精品视频在线观看热6 | 西野翔全部作品在线观看 | zoo性欧美 | 成人一级黄色大片 | 国产精品国产精品国产三级普 | bt天堂在线最新版www | 亚洲午夜精品久久久久 | 亚洲AV久久久久久久无码 | 日本高清中文字幕视频在线 | 免费一级毛片在线播放放视频 | 国产午夜亚洲精品一区网站 | 日本欧美一二三区色视频 | 激情五色月 | 欧美高清无砖专区欧美精品 | 日本漫画被黄漫免费动 | 思思91精品国产综合在线 | 504神宫寺奈绪大战黑人 | 国产精品久久久久毛片 | 青久久| 精品久久久噜噜噜久久久app | 精品视频入口 | 99久久综合精品免费 | 双性人bbww欧美双性 | sp啪啪调教打屁股网站 | 国产一区二区三区四 | 国产原创精品 | 欧美国产在线 | 欧美成人中文字幕在线看 | 日日本老女人 |