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