pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法
當(dāng)使用pytorch寫(xiě)網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)候,本人發(fā)現(xiàn)在卷積層與第一個(gè)全連接層的全連接層的input_features不知道該寫(xiě)多少?一開(kāi)始本人的做法是對(duì)著pytorch官網(wǎng)的公式推,但是總是算錯(cuò)。
后來(lái)發(fā)現(xiàn),寫(xiě)完卷積層后可以根據(jù)模擬神經(jīng)網(wǎng)絡(luò)的前向傳播得出這個(gè)。
全連接層的input_features是多少。首先來(lái)看一下這個(gè)簡(jiǎn)單的網(wǎng)絡(luò)。這個(gè)卷積的Sequential本人就不再啰嗦了,現(xiàn)在看nn.Linear(???, 4096)這個(gè)全連接層的第一個(gè)參數(shù)該為多少呢?
請(qǐng)看下文詳解。
class AlexNet(nn.Module):
def __init__(self):
super(AlexNet, self).__init__()
self.conv = nn.Sequential(
nn.Conv2d(3, 96, kernel_size=11, stride=4),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.Conv2d(96, 256, kernel_size=5, padding=2),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2),
nn.Conv2d(256, 384, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.Conv2d(384, 384, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.Conv2d(384, 256, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2)
)
self.fc = nn.Sequential(
nn.Linear(???, 4096)
......
......
)
首先,我們先把forward寫(xiě)一下:
def forward(self, x):
x = self.conv(x)
print x.size()
就寫(xiě)到這里就可以了。其次,我們初始化一下網(wǎng)絡(luò),隨機(jī)一個(gè)輸入:
import torch from Alexnet.AlexNet import * from torch.autograd import Variable if __name__ == '__main__': net = AlexNet() data_input = Variable(torch.randn([1, 3, 96, 96])) # 這里假設(shè)輸入圖片是96x96 print data_input.size() net(data_input)
結(jié)果如下:
(1L, 3L, 96L, 96L) (1L, 256L, 1L, 1L)
顯而易見(jiàn),咱們這個(gè)全連接層的input_features為256。
以上這篇pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)從pdf文件中提取文本,并自動(dòng)翻譯的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)從pdf文件中提取文本,并自動(dòng)翻譯的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
pytorch如何利用ResNet18進(jìn)行手寫(xiě)數(shù)字識(shí)別
這篇文章主要介紹了pytorch如何利用ResNet18進(jìn)行手寫(xiě)數(shù)字識(shí)別問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
4種Python基于字段的不使用元類(lèi)的ORM實(shí)現(xiàn)方法總結(jié)
在 Python 中,ORM(Object-Relational Mapping)是一種將對(duì)象和數(shù)據(jù)庫(kù)之間的映射關(guān)系進(jìn)行轉(zhuǎn)換的技術(shù),本文為大家整理了4種不使用元類(lèi)的簡(jiǎn)單ORM實(shí)現(xiàn)方式,需要的可以參考下2023-12-12
Python常用列表數(shù)據(jù)結(jié)構(gòu)小結(jié)
這篇文章主要介紹了Python常用列表數(shù)據(jù)結(jié)構(gòu)小結(jié),很有參考借鑒價(jià)值,需要的朋友可以參考下2014-08-08
淺談Python3多線(xiàn)程之間的執(zhí)行順序問(wèn)題
這篇文章主要介紹了淺談Python3多線(xiàn)程之間的執(zhí)行順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Python實(shí)現(xiàn)將字典內(nèi)容寫(xiě)入json文件
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)將字典內(nèi)容寫(xiě)入json文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08
Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總
這篇文章主要介紹了Python中的Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法,創(chuàng)建Dataframe主要是使用pandas中的DataFrame函數(shù),其核心就是第一個(gè)參數(shù):data,傳入原始數(shù)據(jù),因此我們可以據(jù)此給出六種創(chuàng)建Dataframe的方法,需要的朋友可以參考下2023-05-05

