最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

21 卷積層里的多輸入多輸出通道【動手學深度學習v2】

2023-07-20 20:24 作者:月蕪SA  | 我要投稿

多輸入通道:

多通道用于提取圖片內的不同特征信息,是比較重要的超參數(shù)

對于不同的通道,使用不同的卷積核進行處理


c:channel,通道數(shù)

卷積核數(shù)等于輸入通道數(shù),輸出通道為1

多輸出通道:使用多個三維卷積核


多通道卷積輸入和輸出的意義:

不同的輸出通道可以識別特定的圖形模式(比如不同的顏色、不同方向的紋理等)


特殊卷積核:1*1卷積核,不識別矩陣的空間信息,相當于將每個通道輸入的矩陣拉成一個向量進行處理。




代碼實現(xiàn):

import torch
from d2l import torch as d2l

def corr2d_multi_in(X, K):
    # 先遍歷“X”和“K”的第0個維度(通道維度),再把它們加在一起
    return sum(d2l.corr2d(x, k) for x, k in zip(X, K))

zip(X, K)函數(shù)可以將X和K的每個通道配對,返回一個可迭代對象,其中每個元素是一個(x, k)的元組,表示一個輸入通道和一個卷積核。

驗證函數(shù)功能(單通道輸出)

X = torch.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]]])
K = torch.tensor([[[0.0, 1.0], [2.0, 3.0]], [[1.0, 2.0], [3.0, 4.0]]])

corr2d_multi_in(X, K)


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


計算多個通道輸出的互相關函數(shù)(互相關運算即為卷積運算)

def corr2d_multi_in_out(X, K):
    # 迭代“K”的第0個維度,每次都對輸入“X”執(zhí)行互相關運算。
    # 最后將所有結果都疊加在一起
    return torch.stack([corr2d_multi_in(X, k) for k in K], 0)

通過將核張量KK+1K中每個元素加1)和K+2連接起來,構造了一個具有3個輸出通道的卷積核。

K = torch.stack((K, K + 1, K + 2), 0)
K.shape


torch.Size([3, 2, 2, 2])

下面,我們對輸入張量X與卷積核張量K執(zhí)行互相關運算。現(xiàn)在的輸出包含3個通道,第一個通道的結果與先前輸入張量X和多輸入單輸出通道的結果一致。

corr2d_multi_in_out(X, K)


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

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

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


1*1卷積核的情況

下面,我們使用全連接層實現(xiàn)1×1

卷積。 請注意,我們需要對輸入和輸出的數(shù)據(jù)形狀進行調整。

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


當執(zhí)行1×1

卷積運算時,上述函數(shù)相當于先前實現(xiàn)的互相關函數(shù)corr2d_multi_in_out。讓我們用一些樣本數(shù)據(jù)來驗證這一點。


X = torch.normal(0, 1, (3, 3, 3))
K = torch.normal(0, 1, (2, 3, 1, 1))

Y1 = corr2d_multi_in_out_1x1(X, K)
Y2 = corr2d_multi_in_out(X, K)
assert float(torch.abs(Y1 - Y2).sum()) < 1e-6


Pytorch簡潔調用版


知識補充:

padding 0過多不會影響模型性能

21 卷積層里的多輸入多輸出通道【動手學深度學習v2】的評論 (共 條)

分享到微博請遵守國家法律
合肥市| 儋州市| 东乡县| 云梦县| 同德县| 泸溪县| 密云县| 阳城县| 专栏| 班戈县| 镇坪县| 厦门市| 南昌县| 达拉特旗| 阜南县| 西乌珠穆沁旗| 永福县| 巨野县| 高台县| 乡城县| 寿阳县| 巴南区| 江津市| 扎赉特旗| 时尚| 山阳县| 永济市| 瓮安县| 惠水县| 建始县| 策勒县| 呼和浩特市| 景宁| 荃湾区| 罗城| 峨边| 石河子市| 屏东市| 东台市| 江西省| 石嘴山市|