日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

簡(jiǎn)單聊聊PyTorch里面的torch.nn.Parameter()_python

作者:VanJordan ? 更新時(shí)間: 2022-04-27 編程語(yǔ)言

在刷官方Tutorial的時(shí)候發(fā)現(xiàn)了一個(gè)用法self.v = torch.nn.Parameter(torch.FloatTensor(hidden_size)),看了官方教程里面的解釋也是云里霧里,于是在棧溢網(wǎng)看到了一篇解釋?zhuān)⒆隽藥讉€(gè)實(shí)驗(yàn)才算完全理解了這個(gè)函數(shù)。首先可以把這個(gè)函數(shù)理解為類(lèi)型轉(zhuǎn)換函數(shù),將一個(gè)不可訓(xùn)練的類(lèi)型Tensor轉(zhuǎn)換成可以訓(xùn)練的類(lèi)型parameter并將這個(gè)parameter綁定到這個(gè)module里面(net.parameter()中就有這個(gè)綁定的parameter,所以在參數(shù)優(yōu)化的時(shí)候可以進(jìn)行優(yōu)化的),所以經(jīng)過(guò)類(lèi)型轉(zhuǎn)換這個(gè)self.v變成了模型的一部分,成為了模型中根據(jù)訓(xùn)練可以改動(dòng)的參數(shù)了。使用這個(gè)函數(shù)的目的也是想讓某些變量在學(xué)習(xí)的過(guò)程中不斷的修改其值以達(dá)到最優(yōu)化。

出現(xiàn)這個(gè)函數(shù)的地方

在concat注意力機(jī)制中,權(quán)值V是不斷學(xué)習(xí)的所以要是parameter類(lèi)型。

通過(guò)做下面的實(shí)驗(yàn)發(fā)現(xiàn),linear里面的weight和bias就是parameter類(lèi)型,且不能夠使用tensor類(lèi)型替換,還有l(wèi)inear里面的weight甚至可能通過(guò)指定一個(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)練的,并沒(méi)有綁定在module的parameter列表中。

總結(jié)

原文鏈接:https://www.jianshu.com/p/d8b77cc02410

欄目分類(lèi)
最近更新