備案公司網(wǎng)站建設(shè)方案書(shū)新軟件如何推廣
鶴壁市浩天電氣有限公司
2026/01/24 08:51:53
備案公司網(wǎng)站建設(shè)方案書(shū),新軟件如何推廣,阿里巴巴建設(shè)網(wǎng)站首頁(yè),長(zhǎng)沙網(wǎng)站搭建優(yōu)化多輸入多輸出通道
學(xué)習(xí)目標(biāo)
本課程將帶領(lǐng)學(xué)員學(xué)習(xí)使用多輸入多輸出通道來(lái)擴(kuò)展卷積層的模型#xff0c;學(xué)習(xí)111 imes 111卷積層的使用場(chǎng)景#xff0c;更深入地研究有多輸入和多輸出的卷積核。
相關(guān)知識(shí)點(diǎn)
具有多輸入和多輸出通道的卷積核111 imes 111 卷積層應(yīng)用
學(xué)習(xí)內(nèi)容
1…多輸入多輸出通道學(xué)習(xí)目標(biāo)本課程將帶領(lǐng)學(xué)員學(xué)習(xí)使用多輸入多輸出通道來(lái)擴(kuò)展卷積層的模型學(xué)習(xí)1×11 imes 11×1卷積層的使用場(chǎng)景更深入地研究有多輸入和多輸出的卷積核。相關(guān)知識(shí)點(diǎn)具有多輸入和多輸出通道的卷積核1×11 imes 11×1卷積層應(yīng)用學(xué)習(xí)內(nèi)容1 具有多輸入和多輸出通道的卷積核雖然我們?cè)跉v史實(shí)驗(yàn)中描述了構(gòu)成每個(gè)圖像的多個(gè)通道和多層卷積層。例如彩色圖像具有標(biāo)準(zhǔn)的RGB通道來(lái)代表紅、綠和藍(lán)。但是到目前為止我們僅展示了單個(gè)輸入和單個(gè)輸出通道的簡(jiǎn)化例子。這使得我們可以將輸入、卷積核和輸出看作二維張量。當(dāng)我們添加通道時(shí)我們的輸入和隱藏的表示都變成了三維張量。例如每個(gè)RGB輸入圖像具有3×h×w3 imes h imes w3×h×w的形狀。我們將這個(gè)大小為333的軸稱(chēng)為通道channel維度。本課程將更深入地研究具有多輸入和多輸出通道的卷積核。1.1 多輸入通道當(dāng)輸入包含多個(gè)通道時(shí)需要構(gòu)造一個(gè)與輸入數(shù)據(jù)具有相同輸入通道數(shù)的卷積核以便與輸入數(shù)據(jù)進(jìn)行互相關(guān)運(yùn)算。假設(shè)輸入的通道數(shù)為cic_ici?那么卷積核的輸入通道數(shù)也需要為cic_ici?。如果卷積核的窗口形狀是kh×kwk_h imes k_wkh?×kw?那么當(dāng)ci1c_i1ci?1時(shí)我們可以把卷積核看作形狀為kh×kwk_h imes k_wkh?×kw?的二維張量。然而當(dāng)ci1c_i1ci?1時(shí)我們卷積核的每個(gè)輸入通道將包含形狀為kh×kwk_h imes k_wkh?×kw?的張量。將這些張量cic_ici?連結(jié)在一起可以得到形狀為ci×kh×kwc_i imes k_h imes k_wci?×kh?×kw?的卷積核。由于輸入和卷積核都有cic_ici?個(gè)通道我們可以對(duì)每個(gè)通道輸入的二維張量和卷積核的二維張量進(jìn)行互相關(guān)運(yùn)算再對(duì)通道求和將cic_ici?的結(jié)果相加得到二維張量。這是多通道輸入和多輸入通道卷積核之間進(jìn)行二維互相關(guān)運(yùn)算的結(jié)果。在圖1中我們演示了一個(gè)具有兩個(gè)輸入通道的二維互相關(guān)運(yùn)算的示例。陰影部分是第一個(gè)輸出元素以及用于計(jì)算這個(gè)輸出的輸入和核張量元素(1×12×24×35×4)(0×01×13×24×3)56(1 imes12 imes24 imes35 imes4)(0 imes01 imes13 imes24 imes3)56(1×12×24×35×4)(0×01×13×24×3)56。圖1兩個(gè)輸入通道的互相關(guān)計(jì)算為了加深理解我們實(shí)現(xiàn)一下多輸入通道互相關(guān)運(yùn)算。簡(jiǎn)而言之我們所做的就是對(duì)每個(gè)通道執(zhí)行互相關(guān)操作然后將結(jié)果相加。#安裝依賴(lài)包%pip install torch2.1.0%pip install torchvision0.16.0%pip install d2limporttorchfromd2limporttorchasd2ldefcorr2d_multi_in(X,K):# 先遍歷“X”和“K”的第0個(gè)維度通道維度再把它們加在一起returnsum(d2l.corr2d(x,k)forx,kinzip(X,K))我們可以構(gòu)造與兩個(gè)輸入通道的互相關(guān)計(jì)算圖中的值相對(duì)應(yīng)的輸入張量X和核張量K以驗(yàn)證互相關(guān)運(yùn)算的輸出。Xtorch.tensor([[[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]],[[1.0,2.0,3.0],[4.0,5.0,6.0],[7.0,8.0,9.0]]])Ktorch.tensor([[[0.0,1.0],[2.0,3.0]],[[1.0,2.0],[3.0,4.0]]])corr2d_multi_in(X,K)outtensor([[ 56., 72.], [104., 120.]])1.2 多輸出通道到目前為止不論有多少輸入通道我們還只有一個(gè)輸出通道。然而每一層有多個(gè)輸出通道是至關(guān)重要的。在最流行的神經(jīng)網(wǎng)絡(luò)架構(gòu)中隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的加深我們常會(huì)增加輸出通道的維數(shù)通過(guò)減少空間分辨率以獲得更大的通道深度。直觀地說(shuō)我們可以將每個(gè)通道看作對(duì)不同特征的響應(yīng)。而現(xiàn)實(shí)可能更為復(fù)雜一些因?yàn)槊總€(gè)通道不是獨(dú)立學(xué)習(xí)的而是為了共同使用而優(yōu)化的。因此多輸出通道并不僅是學(xué)習(xí)多個(gè)單通道的檢測(cè)器。用cic_ici?和coc_oco?分別表示輸入和輸出通道的數(shù)目并讓khk_hkh?和kwk_wkw?為卷積核的高度和寬度。為了獲得多個(gè)通道的輸出我們可以為每個(gè)輸出通道創(chuàng)建一個(gè)形狀為ci×kh×kwc_i imes k_h imes k_wci?×kh?×kw?的卷積核張量這樣卷積核的形狀是co×ci×kh×kwc_o imes c_i imes k_h imes k_wco?×ci?×kh?×kw?。在互相關(guān)運(yùn)算中每個(gè)輸出通道先獲取所有輸入通道再以對(duì)應(yīng)該輸出通道的卷積核計(jì)算出結(jié)果。如下所示我們實(shí)現(xiàn)一個(gè)計(jì)算多個(gè)通道的輸出的互相關(guān)函數(shù)。defcorr2d_multi_in_out(X,K):# 迭代“K”的第0個(gè)維度每次都對(duì)輸入“X”執(zhí)行互相關(guān)運(yùn)算。# 最后將所有結(jié)果都疊加在一起returntorch.stack([corr2d_multi_in(X,k)forkinK],0)通過(guò)將核張量K與K1K中每個(gè)元素加111和K2連接起來(lái)構(gòu)造了一個(gè)具有333個(gè)輸出通道的卷積核。Ktorch.stack((K,K1,K2),0)K.shapeout:torch.Size([3, 2, 2, 2])下面我們對(duì)輸入張量X與卷積核張量K執(zhí)行互相關(guān)運(yùn)算?,F(xiàn)在的輸出包含333個(gè)通道第一個(gè)通道的結(jié)果與先前輸入張量X和多輸入單輸出通道的結(jié)果一致。corr2d_multi_in_out(X,K)out:tensor([[[ 56., 72.], [104., 120.]], [[ 76., 100.], [148., 172.]], [[ 96., 128.], [192., 224.]]])21×11 imes 11×1卷積層應(yīng)用1×11 imes 11×1卷積即khkw1k_h k_w 1kh?kw?1看起來(lái)似乎沒(méi)有多大意義。畢竟卷積的本質(zhì)是有效提取相鄰像素間的相關(guān)特征而1×11 imes 11×1卷積顯然沒(méi)有此作用。盡管如此1×11 imes 11×1仍然十分流行經(jīng)常包含在復(fù)雜深層網(wǎng)絡(luò)的設(shè)計(jì)中。下面讓我們?cè)敿?xì)地解讀一下它的實(shí)際作用。因?yàn)槭褂昧俗钚〈翱?×11 imes 11×1卷積失去了卷積層的特有能力——在高度和寬度維度上識(shí)別相鄰元素間相互作用的能力。其實(shí)1×11 imes 11×1卷積的唯一計(jì)算發(fā)生在通道上。圖2展示了使用1×11 imes 11×1卷積核與333個(gè)輸入通道和222個(gè)輸出通道的互相關(guān)計(jì)算。這里輸入和輸出具有相同的高度和寬度輸出中的每個(gè)元素都是從輸入圖像中同一位置的元素的線(xiàn)性組合。我們可以將1×11 imes 11×1卷積層看作在每個(gè)像素位置應(yīng)用的全連接層以cic_ici?個(gè)輸入值轉(zhuǎn)換為coc_oco?個(gè)輸出值。因?yàn)檫@仍然是一個(gè)卷積層所以跨像素的權(quán)重是一致的。同時(shí)1×11 imes 11×1卷積層需要的權(quán)重維度為co×cic_o imes c_ico?×ci?再額外加上一個(gè)偏置。圖2互相關(guān)計(jì)算使用了具有3個(gè)輸入通道和2個(gè)輸出通道的卷積核下面我們使用全連接層實(shí)現(xiàn)1×11 imes 11×1卷積。請(qǐng)注意我們需要對(duì)輸入和輸出的數(shù)據(jù)形狀進(jìn)行調(diào)整。defcorr2d_multi_in_out_1x1(X,K):c_i,h,wX.shape c_oK.shape[0]XX.reshape((c_i,h*w))KK.reshape((c_o,c_i))# 全連接層中的矩陣乘法Ytorch.matmul(K,X)returnY.reshape((c_o,h,w))當(dāng)執(zhí)行1×11 imes 11×1卷積運(yùn)算時(shí)上述函數(shù)相當(dāng)于先前實(shí)現(xiàn)的互相關(guān)函數(shù)corr2d_multi_in_out。讓我們用一些樣本數(shù)據(jù)來(lái)驗(yàn)證這一點(diǎn)。Xtorch.normal(0,1,(3,3,3))Ktorch.normal(0,1,(2,3,1,1))Y1corr2d_multi_in_out_1x1(X,K)Y2corr2d_multi_in_out(X,K)assertfloat(torch.abs(Y1-Y2).sum())1e-6