PyTorch里面的torch.nn.Parameter()詳解
在看過很多博客的時候發(fā)現(xiàn)了一個用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),首先可以把這個函數(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類型,不直接使用一個torch.nn.Linear()可能是因為學(xué)習(xí)的效果不好。
通過做下面的實驗發(fā)現(xiàn),linear里面的weight和bias就是parameter類型,且不能夠使用tensor類型替換,還有l(wèi)inear里面的weight甚至可能通過指定一個不同于初始化時候的形狀進行模型的更改。
self.gamma被綁定到模型中了,所以可以在訓(xùn)練的時候優(yōu)化
以上這篇PyTorch里面的torch.nn.Parameter()詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡單介紹Python中的try和finally和with方法
這篇文章主要介紹了Python中的try和finally和with方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05django Layui界面點擊彈出對話框并請求邏輯生成分頁的動態(tài)表格實例
這篇文章主要介紹了django Layui界面點擊彈出對話框并請求邏輯生成分頁的動態(tài)表格實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解
循環(huán)鏈表 (Circular Linked List) 是鏈式存儲結(jié)構(gòu)的另一種形式,它將鏈表中最后一個結(jié)點的指針指向鏈表的頭結(jié)點,使整個鏈表頭尾相接形成一個環(huán)形,使鏈表的操作更加方便靈活。本文將詳細介紹一下循環(huán)鏈表的相關(guān)知識,需要的可以參考一下2022-01-01