第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在卷積神經(jīng)網(wǎng)絡(luò)中設(shè)置層的維度

在卷積神經(jīng)網(wǎng)絡(luò)中設(shè)置層的維度

桃花長(zhǎng)相依 2021-09-14 17:44:24
假設(shè)我有 4 個(gè)批次的 3x100x100 圖像作為輸入,并且我正在嘗試使用 pytorch 制作我的第一個(gè)卷積神經(jīng)網(wǎng)絡(luò)。我真的不確定我的卷積神經(jīng)網(wǎng)絡(luò)是否正確,因?yàn)楫?dāng)我通過以下安排訓(xùn)練我的輸入時(shí),我遇到了錯(cuò)誤:Expected input batch_size (1) to match target batch_size (4).以下是我的轉(zhuǎn)發(fā)nnet:那么如果我要通過它:nn.Conv2d(3, 6, 5)我會(huì)得到 6 層地圖,每層都有尺寸(100-5+1)。那么如果我要通過它:nn.MaxPool2d(2, 2)我會(huì)得到 6 層地圖,每層都有尺寸 (96/2)然后,如果我要通過它:nn.Conv2d(6, 16, 5)我會(huì)得到 16 層地圖,每層都有尺寸 (48-5+1)那么如果我要通過它:self.fc1 = nn.Linear(44*44*16, 120)我會(huì)得到 120 個(gè)神經(jīng)元那么如果我要通過它:self.fc2 = nn.Linear(120, 84)我會(huì)得到 84 個(gè)神經(jīng)元那么如果我要通過它:self.fc3 = nn.Linear(84, 3)我會(huì)得到 3 個(gè)輸出,這將是完美的,因?yàn)槲矣?3 類標(biāo)簽。但正如我之前所說,這會(huì)導(dǎo)致一個(gè)非常令人驚訝的錯(cuò)誤,因?yàn)檫@對(duì)我來說很有意義。完整的神經(jīng)網(wǎng)絡(luò)代碼:import torch.nn as nnimport torch.nn.functional as Fclass Net(nn.Module):    def __init__(self):        super(Net, self).__init__()        self.conv1 = nn.Conv2d(3, 6, 5)        self.pool = nn.MaxPool2d(2, 2)        self.conv2 = nn.Conv2d(6, 16, 5)        self.fc1 = nn.Linear(44*44*16, 120)        self.fc2 = nn.Linear(120, 84)        self.fc3 = nn.Linear(84, 3)    def forward(self, x):        x = self.pool(F.relu(self.conv1(x)))        x = self.pool(F.relu(self.conv2(x)))        x = x.view(-1, 16 *44*44)        x = F.relu(self.fc1(x))        x = F.relu(self.fc2(x))        x = self.fc3(x)        return xnet = Net()net.to(device)
查看完整描述

1 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

你的理解是正確的,非常詳細(xì)。


但是,您使用了兩個(gè)池化層(請(qǐng)參閱下面的相關(guān)代碼)。所以第二步之后的輸出將是16個(gè)44/2=22維度的地圖。


x = self.pool(F.relu(self.conv1(x)))

x = self.pool(F.relu(self.conv2(x)))

要解決此問題,要么不池化,要么將全連接層的維度更改為22*22*16。


要通過不池化來修復(fù),請(qǐng)修改您的轉(zhuǎn)發(fā)功能,如下所示。


def forward(self, x):

    x = self.pool(F.relu(self.conv1(x)))

    x = F.relu(self.conv2(x))

    x = x.view(-1, 16 *44*44)

    x = F.relu(self.fc1(x))

    x = F.relu(self.fc2(x))

    x = self.fc3(x)

    return x

要通過更改全連接層的維度來修復(fù),請(qǐng)更改網(wǎng)絡(luò)的聲明如下。


def __init__(self):

    super(Net, self).__init__()

    self.conv1 = nn.Conv2d(3, 6, 5)

    self.pool = nn.MaxPool2d(2, 2)

    self.conv2 = nn.Conv2d(6, 16, 5)

    self.fc1 = nn.Linear(22*22*16, 120)

    self.fc2 = nn.Linear(120, 84)

    self.fc3 = nn.Linear(84, 10)


查看完整回答
反對(duì) 回復(fù) 2021-09-14
  • 1 回答
  • 0 關(guān)注
  • 333 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)