Pytorch?linear?多維輸入的參數(shù)問(wèn)題
問(wèn)題: 由于 在輸入lstm 層 每個(gè)batch 做了根據(jù)輸入序列最大長(zhǎng)度做了padding,導(dǎo)致每個(gè) batch 的 length 不同。 導(dǎo)致輸出 長(zhǎng)度不同 。如:(batch, length, output_dim): (12,128,10),(12,111,10). 但是輸入 linear 層的時(shí)候沒(méi)有出現(xiàn)問(wèn)題。
網(wǎng)站解釋?zhuān)?/p>
官網(wǎng) pytorch linear:
- Input:(*, H_{in})(∗,Hin?)where*∗means any number of dimensions including none andH_{in} = \text{in\_features}Hin?=in_features. 任意維度 number 理解有歧義 (a)number. k可以理解三維,四維。。。 (b) 可以理解 為某一維度的數(shù) 。
- Output:(*, H_{out})(∗,Hout?)where all but the last dimension are the same shape as the input andH_{out} = \text{out\_features}Hout?=out_features.
代碼解釋?zhuān)?/h2>
分別 用三維 和二維輸入數(shù)組,查看他們參數(shù)數(shù)目是否一樣。
import torch x = torch.randn(128, 20) # 輸入的維度是(128,20) m = torch.nn.Linear(20, 30) # 20,30是指維度 output = m(x) print('m.weight.shape:\n ', m.weight.shape) print('m.bias.shape:\n', m.bias.shape) print('output.shape:\n', output.shape) # ans = torch.mm(input,torch.t(m.weight))+m.bias 等價(jià)于下面的 ans = torch.mm(x, m.weight.t()) + m.bias print('ans.shape:\n', ans.shape) print(torch.equal(ans, output))
output:
m.weight.shape: torch.Size([30, 20]) m.bias.shape: torch.Size([30]) output.shape: torch.Size([128, 30]) ans.shape: torch.Size([128, 30]) True
x = torch.randn(128, 30,20) # 輸入的維度是(128,30,20) m = torch.nn.Linear(20, 30) # 20,30是指維度 output = m(x) print('m.weight.shape:\n ', m.weight.shape) print('m.bias.shape:\n', m.bias.shape) print('output.shape:\n', output.shape)
ouput: m.weight.shape: torch.Size([30, 20]) m.bias.shape: torch.Size([30]) output.shape: torch.Size([128, 30, 30])
結(jié)果:
(128,30,20),和 (128,20) 分別是如 nn.linear(30,20) 層。
weight.shape 均為: (30,20)
linear() 參數(shù)數(shù)目只和 input_dim ,output_dim 有關(guān)。
weight 在源碼的定義, 沒(méi)找到如何計(jì)算多維input的代碼。
到此這篇關(guān)于Pytorch linear 多維 輸入的參數(shù)的文章就介紹到這了,更多相關(guān)Pytorch多維 輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python分享一款地理數(shù)據(jù)可視化神器keplergl
這篇文章主要介紹了分享一款地理數(shù)據(jù)可視化神器keplergl,keplergl是由Uber開(kāi)源的一款地理數(shù)據(jù)可視化工具,通過(guò)keplergl我們可以在Jupyter?notebook中使用,下文分享需要的小伙伴可以參考一下2022-02-02Python Unittest根據(jù)不同測(cè)試環(huán)境跳過(guò)用例的方法
這篇文章主要給大家介紹了關(guān)于Python Unittest如何根據(jù)不同測(cè)試環(huán)境跳過(guò)用例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-12-12python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能
這篇文章主要介紹了python實(shí)現(xiàn)音樂(lè)播放和下載小程序功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Django框架創(chuàng)建mysql連接與使用示例
這篇文章主要介紹了Django框架創(chuàng)建mysql連接與使用,簡(jiǎn)單介紹了Linux環(huán)境下mysql的安裝,并結(jié)合實(shí)例形式分析了Django框架基于第三方庫(kù)pymysql連接mysql數(shù)據(jù)庫(kù)相關(guān)操作技巧,需要的朋友可以參考下2019-07-07Python爬蟲(chóng)實(shí)戰(zhàn)之網(wǎng)易云音樂(lè)加密解析附源碼
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶你解析網(wǎng)易云音樂(lè)數(shù)據(jù),大家可以在實(shí)戰(zhàn)過(guò)程中更有效的掌握python2021-10-10python使用正則表達(dá)式匹配反斜杠\遇到的問(wèn)題
在學(xué)習(xí)Python正則式的過(guò)程中,有一個(gè)問(wèn)題一直困擾我,如何去匹配一個(gè)反斜杠(即“\”),下面這篇文章主要給大家介紹了關(guān)于python使用正則表達(dá)式匹配反斜杠\的相關(guān)資料,需要的朋友可以參考下2022-09-09Python閉包執(zhí)行時(shí)值的傳遞方式實(shí)例分析
這篇文章主要介紹了Python閉包執(zhí)行時(shí)值的傳遞方式,結(jié)合實(shí)例形式分析了Python閉包執(zhí)行時(shí)的傳值原理與實(shí)現(xiàn)方式,代碼中包含了較為詳盡的注釋便于理解,需要的朋友可以參考下2018-06-06編寫(xiě)Python腳本來(lái)實(shí)現(xiàn)最簡(jiǎn)單的FTP下載的教程
這篇文章主要介紹了編寫(xiě)Python腳本來(lái)實(shí)現(xiàn)最簡(jiǎn)單的FTP下載的教程,主要用到了ftplib模塊,無(wú)圖形界面...需要的朋友可以參考下2015-05-05python matplotlib 畫(huà)dataframe的時(shí)間序列圖實(shí)例
今天小編就為大家分享一篇python matplotlib 畫(huà)dataframe的時(shí)間序列圖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11