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

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

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

服務(wù)器之家 - 腳本之家 - Python - Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新問題及思路詳解

Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新問題及思路詳解

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

這篇文章主要介紹了Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新,實(shí)現(xiàn)思路就是利用tensor的requires_grad,每一個(gè)tensor都有自己的requires_grad成員,值只能為True和False,具體內(nèi)容詳情跟隨小編一起看看吧

實(shí)際問題

Pytorch有的時(shí)候需要對一些層的參數(shù)進(jìn)行固定,這些層不進(jìn)行參數(shù)的梯度更新

問題解決思路

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

  • 優(yōu)化器初始化的時(shí)候不包含這些不想被更新的參數(shù),這樣他們會進(jìn)行梯度回傳,但是不會被更新
  • 將這些不會被更新的參數(shù)梯度歸零,或者不計(jì)算它們的梯度

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

在optim參數(shù)模型參數(shù)中過濾掉requires_grad為False的參數(shù)。
還是以上面搭建的簡單網(wǎng)絡(luò)為例,我們固定第一個(gè)卷積層的參數(shù),訓(xùn)練其他層的所有參數(shù)。

代碼實(shí)現(xiàn)

?
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

遍歷第一層的參數(shù),然后為其設(shè)置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)

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

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

Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新問題及思路詳解

能看出優(yōu)化器僅僅對requires_gradTrue的參數(shù)進(jìn)行迭代優(yōu)化。

LAST 參考文獻(xiàn)

Pytorch中,動態(tài)調(diào)整學(xué)習(xí)率、不同層設(shè)置不同學(xué)習(xí)率和固定某些層訓(xùn)練的方法_我的博客有點(diǎn)東西-CSDN博客

到此這篇關(guān)于Pytorch實(shí)現(xiàn)網(wǎng)絡(luò)部分層的固定不進(jìn)行回傳更新的文章就介紹到這了,更多相關(guān)Pytorch網(wǎng)絡(luò)部分層內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产一 | 久久久噜噜噜久久熟有声小说 | 国产美女爽到喷白浆的 | 精品国产一区二区三区四区在线 | 国产午夜精品久久久久久免费视 | 一区在线视频 | 欧美视频一区二区 | 国产精品免费久久久久久 | 一级电影免费在线观看 | 91色爱| 免费看毛片网站 | 国产一级伦理片 | 欧美又黄又嫩大片a级 | 亚洲天堂字幕 | 欧美日韩一区,二区,三区,久久精品 | 91国在线高清视频 | 国产精品成年片在线观看, 日韩毛片网 | 黄色男女视频 | 日日爱影院 | 蜜桃网在线 | 成人毛片在线免费观看 | 亚洲少妇诱惑 | 牛牛a级毛片在线播放 | 亚洲精品欧美二区三区中文字幕 | 中文字幕涩涩久久乱小说 | 凹凸成人精品亚洲精品密奴 | 9999久久| 自拍偷拍999 | 99pron| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩精品久久久久久久电影99爱 | 欧美一级特黄aaaaaaa什 | 中文字幕精品在线播放 | 毛片视频在线免费观看 | 成人国产精品一区二区毛片在线 | 久久蜜桃精品一区二区三区综合网 | 爱高潮www亚洲精品 国产精品一区自拍 | 免费观看一级黄色片 | 欧美日韩亚洲一区二区三区 | 欧美人一级淫片a免费播放 久久99精品久久久久久园产越南 | 欧美一级高清片在线 |