[動手學(xué)深度學(xué)習(xí)-PyTorch版]-5.3卷積神經(jīng)網(wǎng)絡(luò)-多輸入通道和多輸出通道

5.3 多輸入通道和多輸出通道

前面兩節(jié)里我們用到的輸入和輸出都是二維數(shù)組割卖,但真實(shí)數(shù)據(jù)的維度經(jīng)常更高霹俺。例如,彩色圖像在高和寬2個維度外還有RGB(紅杏节、綠频轿、藍(lán))3個顏色通道。假設(shè)彩色圖像的高和寬分別是h和w(像素)余黎,那么它可以表示為一個3×h×w的多維數(shù)組颖侄。我們將大小為3的這一維稱為通道(channel)維鸟雏。本節(jié)我們將介紹含多個輸入通道或多個輸出通道的卷積核。

5.3.1 多輸入通道

image.png

圖5.4 含2個輸入通道的互相關(guān)計(jì)算

接下來我們實(shí)現(xiàn)含多個輸入通道的互相關(guān)運(yùn)算览祖。我們只需要對每個通道做互相關(guān)運(yùn)算孝鹊,然后通過add_n函數(shù)來進(jìn)行累加。

import torch
from torch import nn
import sys
sys.path.append("..") 
import d2lzh_pytorch as d2l

def corr2d_multi_in(X, K):
    # 沿著X和K的第0維(通道維)分別計(jì)算再相加
    res = d2l.corr2d(X[0, :, :], K[0, :, :])
    for i in range(1, X.shape[0]):
        res += d2l.corr2d(X[i, :, :], K[i, :, :])
    return res

我們可以構(gòu)造圖5.4中的輸入數(shù)組X展蒂、核數(shù)組K來驗(yàn)證互相關(guān)運(yùn)算的輸出又活。

X = torch.tensor([[[0, 1, 2], [3, 4, 5], [6, 7, 8]],
              [[1, 2, 3], [4, 5, 6], [7, 8, 9]]])
K = torch.tensor([[[0, 1], [2, 3]], [[1, 2], [3, 4]]])

corr2d_multi_in(X, K)

輸出:

tensor([[ 56.,  72.],
        [104., 120.]])

5.3.2 多輸出通道

image.png

下面我們實(shí)現(xiàn)一個互相關(guān)運(yùn)算函數(shù)來計(jì)算多個通道的輸出。

def corr2d_multi_in_out(X, K):
    # 對K的第0維遍歷锰悼,每次同輸入X做互相關(guān)計(jì)算柳骄。所有結(jié)果使用stack函數(shù)合并在一起
    return torch.stack([corr2d_multi_in(X, k) for k in K])

我們將核數(shù)組K同K+1(K中每個元素加一)和K+2連結(jié)在一起來構(gòu)造一個輸出通道數(shù)為3的卷積核。

K = torch.stack([K, K + 1, K + 2])
K.shape # torch.Size([3, 2, 2, 2])

下面我們對輸入數(shù)組X與核數(shù)組K做互相關(guān)運(yùn)算箕般。此時的輸出含有3個通道耐薯。其中第一個通道的結(jié)果與之前輸入數(shù)組X與多輸入通道、單輸出通道核的計(jì)算結(jié)果一致隘世。

corr2d_multi_in_out(X, K)

輸出:

tensor([[[ 56.,  72.],
         [104., 120.]],

        [[ 76., 100.],
         [148., 172.]],

        [[ 96., 128.],
         [192., 224.]]])

5.3.3 1×1卷積層

image.png

圖5.5 1x1卷積核的互相關(guān)計(jì)算可柿。輸入和輸出具有相同的高和寬

下面我們使用全連接層中的矩陣乘法來實(shí)現(xiàn)1×1卷積。這里需要在矩陣乘法運(yùn)算前后對數(shù)據(jù)形狀做一些調(diào)整丙者。

def corr2d_multi_in_out_1x1(X, K):
    c_i, h, w = X.shape
    c_o = K.shape[0]
    X = X.view(c_i, h * w)
    K = K.view(c_o, c_i)
    Y = torch.mm(K, X)  # 全連接層的矩陣乘法
    return Y.view(c_o, h, w)

經(jīng)驗(yàn)證复斥,做1×1卷積時,以上函數(shù)與之前實(shí)現(xiàn)的互相關(guān)運(yùn)算函數(shù)corr2d_multi_in_out等價械媒。

X = torch.rand(3, 3, 3)
K = torch.rand(2, 3, 1, 1)

Y1 = corr2d_multi_in_out_1x1(X, K)
Y2 = corr2d_multi_in_out(X, K)

(Y1 - Y2).norm().item() < 1e-6

輸出:

True

在之后的模型里我們將會看到1×1卷積層被當(dāng)作保持高和寬維度形狀不變的全連接層使用目锭。于是,我們可以通過調(diào)整網(wǎng)絡(luò)層之間的通道數(shù)來控制模型復(fù)雜度纷捞。

小結(jié)

  • 使用多通道可以拓展卷積層的模型參數(shù)痢虹。
  • 假設(shè)將通道維當(dāng)作特征維,將高和寬維度上的元素當(dāng)成數(shù)據(jù)樣本主儡,那么1×1卷積層的作用與全連接層等價奖唯。
  • 1×1卷積層通常用來調(diào)整網(wǎng)絡(luò)層之間的通道數(shù),并控制模型復(fù)雜度糜值。

注:除代碼外本節(jié)與原書此節(jié)基本相同丰捷,原書傳送門

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市寂汇,隨后出現(xiàn)的幾起案子病往,更是在濱河造成了極大的恐慌,老刑警劉巖骄瓣,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件停巷,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)畔勤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門蕾各,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人硼被,你說我怎么就攤上這事示损∩酰” “怎么了嚷硫?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長始鱼。 經(jīng)常有香客問我仔掸,道長,這世上最難降的妖魔是什么医清? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任起暮,我火速辦了婚禮,結(jié)果婚禮上会烙,老公的妹妹穿的比我還像新娘负懦。我一直安慰自己,他們只是感情好柏腻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布纸厉。 她就那樣靜靜地躺著,像睡著了一般五嫂。 火紅的嫁衣襯著肌膚如雪颗品。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天沃缘,我揣著相機(jī)與錄音躯枢,去河邊找鬼。 笑死槐臀,一個胖子當(dāng)著我的面吹牛锄蹂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播水慨,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼得糜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了讥巡?” 一聲冷哼從身側(cè)響起掀亩,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欢顷,沒想到半個月后槽棍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年炼七,在試婚紗的時候發(fā)現(xiàn)自己被綠了缆巧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡豌拙,死狀恐怖陕悬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情按傅,我是刑警寧澤捉超,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站唯绍,受9級特大地震影響拼岳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜况芒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一惜纸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绝骚,春花似錦耐版、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蛾魄,卻和暖如春虑瀑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滴须。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工舌狗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扔水。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓痛侍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親魔市。 傳聞我的和親對象是個殘疾皇子主届,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容