簡(jiǎn)單聊聊PyTorch里面的torch.nn.Parameter()
在刷官方Tutorial的時(shí)候發(fā)現(xiàn)了一個(gè)用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解釋也是云里霧里,于是在棧溢網(wǎng)看到了一篇解釋,并做了幾個(gè)實(shí)驗(yàn)才算完全理解了這個(gè)函數(shù)。首先可以把這個(gè)函數(shù)理解為類型轉(zhuǎn)換函數(shù),將一個(gè)不可訓(xùn)練的類型Tensor轉(zhuǎn)換成可以訓(xùn)練的類型parameter并將這個(gè)parameter綁定到這個(gè)module里面(net.parameter()中就有這個(gè)綁定的parameter,所以在參數(shù)優(yōu)化的時(shí)候可以進(jìn)行優(yōu)化的),所以經(jīng)過類型轉(zhuǎn)換這個(gè)self.v變成了模型的一部分,成為了模型中根據(jù)訓(xùn)練可以改動(dòng)的參數(shù)了。使用這個(gè)函數(shù)的目的也是想讓某些變量在學(xué)習(xí)的過程中不斷的修改其值以達(dá)到最優(yōu)化。
出現(xiàn)這個(gè)函數(shù)的地方
在concat注意力機(jī)制中,權(quán)值V是不斷學(xué)習(xí)的所以要是parameter類型。
通過做下面的實(shí)驗(yàn)發(fā)現(xiàn),linear里面的weight和bias就是parameter類型,且不能夠使用tensor類型替換,還有l(wèi)inear里面的weight甚至可能通過指定一個(gè)不同于初始化時(shí)候的形狀進(jìn)行模型的更改。
做的實(shí)驗(yàn)
self.v被綁定到模型中了,所以可以在訓(xùn)練的時(shí)候優(yōu)化
與torch.tensor([1,2,3],requires_grad=True)的區(qū)別,這個(gè)只是將參數(shù)變成可訓(xùn)練的,并沒有綁定在module的parameter列表中。
總結(jié)
到此這篇關(guān)于PyTorch里面的torch.nn.Parameter()的文章就介紹到這了,更多相關(guān)PyTorch的torch.nn.Parameter()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python學(xué)習(xí)print中format的用法示例
這篇文章主要為大家介紹了python學(xué)習(xí)print中format的用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python爬取”頂點(diǎn)小說網(wǎng)“《純陽劍尊》的示例代碼
這篇文章主要介紹了python爬取”頂點(diǎn)小說網(wǎng)“《純陽劍尊》的示例代碼,幫助大家更好的利用python 爬蟲爬取數(shù)據(jù),感興趣的朋友可以了解下2020-10-10Java byte數(shù)組操縱方式代碼實(shí)例解析
這篇文章主要介紹了Java byte數(shù)組操縱方式代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python自定義簡(jiǎn)單圖軸簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python自定義簡(jiǎn)單圖軸簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01django1.11.1 models 數(shù)據(jù)庫同步方法
今天小編就為大家分享一篇django1.11.1 models 數(shù)據(jù)庫同步方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05python+flask編寫一個(gè)簡(jiǎn)單的登錄接口
這篇文章主要介紹了python+flask編寫一個(gè)簡(jiǎn)單的登錄接口,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11