国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計(jì)算機(jī)視覺:轉(zhuǎn)置卷積

這篇具有很好參考價(jià)值的文章主要介紹了計(jì)算機(jī)視覺:轉(zhuǎn)置卷積。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

轉(zhuǎn)置卷積



轉(zhuǎn)置卷積(Transposed Convolution),也稱為反卷積(Deconvolution),是卷積神經(jīng)網(wǎng)絡(luò)(CNN)中的一種操作,它可以將一個(gè)低維度的特征圖(如卷積層的輸出)轉(zhuǎn)換為更高維度的特征圖(如上一層的輸入)。轉(zhuǎn)置卷積操作通常用于圖像分割、生成對(duì)抗網(wǎng)絡(luò)(GAN)和語音識(shí)別等任務(wù)中。

在傳統(tǒng)卷積操作中,我們使用一個(gè)滑動(dòng)窗口(卷積核)來從輸入圖像中提取特征。而在轉(zhuǎn)置卷積中,我們使用一個(gè)滑動(dòng)窗口來填充零值的輸出圖像,然后通過卷積核來計(jì)算輸出圖像中每個(gè)像素的值。這個(gè)過程可以看作是對(duì)輸入特征圖進(jìn)行上采樣(增加分辨率)的過程。

具體來說,假設(shè)我們有一個(gè)輸入特征圖 X X X,大小為 N × N × C N\times N\times C N×N×C,其中 N N N 是特征圖的寬和高, C C C 是特征圖的通道數(shù)。我們還有一個(gè)大小為 K × K K\times K K×K 的卷積核 W W W,其中 K K K 是卷積核的大小。轉(zhuǎn)置卷積的輸出特征圖 Y Y Y 的大小為 ( N + 2 P ? K + 1 ) × ( N + 2 P ? K + 1 ) × C ′ (N+2P-K+1)\times(N+2P-K+1)\times C' (N+2P?K+1)×(N+2P?K+1)×C,其中 P P P 是填充大小, C ′ C' C 是輸出特征圖的通道數(shù)。轉(zhuǎn)置卷積的計(jì)算方式可以表示為:

Y i , j , k = ∑ u = 0 K ? 1 ∑ v = 0 K ? 1 ∑ c ′ = 1 C ′ X i + u , j + v , c W u , v , c ′ , k Y_{i,j,k} = \sum_{u=0}^{K-1}\sum_{v=0}^{K-1}\sum_{c'=1}^{C'} X_{i+u,j+v,c}W_{u,v,c',k} Yi,j,k?=u=0K?1?v=0K?1?c=1C?Xi+u,j+v,c?Wu,v,c,k?

其中 i , j i,j i,j 是輸出特征圖中的坐標(biāo), k k k 是輸出特征圖中的通道數(shù), u , v u,v u,v 是卷積核中的坐標(biāo), c c c 是輸入特征圖中的通道數(shù), c ′ c' c 是輸出特征圖中的通道數(shù)。

需要注意的是,轉(zhuǎn)置卷積的輸出特征圖大小取決于填充大小 P P P,因此要根據(jù)具體的應(yīng)用場(chǎng)景和網(wǎng)絡(luò)結(jié)構(gòu)來確定填充大小。另外,轉(zhuǎn)置卷積還可以通過調(diào)整步長(stride)來控制輸出特征圖的大小。如果步長為 S S S,則輸出特征圖的大小為 ( N ? 1 ) × S + K ? 2 P (N-1)\times S+K-2P (N?1)×S+K?2P。

基本操作

讓我們暫時(shí)忽略通道,從基本的轉(zhuǎn)置卷積開始,設(shè)步幅為1且沒有填充。 假設(shè)我們有一個(gè) n h × n w n_h\times n_w nh?×nw?的輸入張量和一個(gè) k h × k w k_h\times k_w kh?×kw?的卷積核。 以步幅為1滑動(dòng)卷積核窗口,每行 n h n_h nh?次,每列 n w n_w nw?次,共產(chǎn)生 n h × n w n_h\times n_w nh?×nw?個(gè)中間結(jié)果。 每個(gè)中間結(jié)果都是一個(gè) ( n h × k h ? 1 ) × ( n w × k w ? 1 ) (n_h\times k_h-1)\times (n_w\times k_w-1) (nh?×kh??1)×(nw?×kw??1)的張量,初始化為0。 為了計(jì)算每個(gè)中間張量,輸入張量中的每個(gè)元素都要乘以卷積核,從而使所得的 k h × k w k_h\times k_w kh?×kw?張量替換中間張量的一部分。 請(qǐng)注意,每個(gè)中間張量被替換部分的位置與輸入張量中元素的位置相對(duì)應(yīng)。 最后,所有中間結(jié)果相加以獲得最終結(jié)果。

舉個(gè)例子如下:
計(jì)算機(jī)視覺:轉(zhuǎn)置卷積
我們可以對(duì)輸入矩陣X和卷積核矩陣K實(shí)現(xiàn)基本的轉(zhuǎn)置卷積運(yùn)算trans_conv。

def trans_conv(X, K):
    h, w = K.shape
    Y = torch.zeros((X.shape[0] + h - 1, X.shape[1] + w - 1))
    for i in range(X.shape[0]):
        for j in range(X.shape[1]):
            Y[i: i + h, j: j + w] += X[i, j] * K
    return Y
X = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
K = torch.tensor([[0.0, 1.0], [2.0, 3.0]])
trans_conv(X, K)

計(jì)算機(jī)視覺:轉(zhuǎn)置卷積

或者使用torch自帶的API:

X, K = X.reshape(1, 1, 2, 2), K.reshape(1, 1, 2, 2)
tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, bias=False)
tconv.weight.data = K
tconv(X)

計(jì)算機(jī)視覺:轉(zhuǎn)置卷積
nn.ConvTranspose2d 是 PyTorch 中用于創(chuàng)建轉(zhuǎn)置卷積層的函數(shù),它有以下參數(shù):

in_channels:輸入特征圖的通道數(shù)。
out_channels:輸出特征圖的通道數(shù)。
kernel_size:卷積核的大小。可以是一個(gè)整數(shù)(表示正方形卷積核的邊長),也可以是一個(gè)長度為 2 的元組或列表(表示長方形卷積核的寬和高)。
stride:卷積核的步長??梢允且粋€(gè)整數(shù)(表示在寬度和高度上的步長相同),也可以是一個(gè)長度為 2 的元組或列表(表示在寬度和高度上的步長分別為多少)。
padding:填充大小??梢允且粋€(gè)整數(shù)(表示在寬度和高度上的填充大小相同),也可以是一個(gè)長度為 2 的元組或列表(表示在寬度和高度上的填充大小分別為多少)。
output_padding:輸出特征圖的填充大小??梢允且粋€(gè)整數(shù)(表示在寬度和高度上的填充大小相同),也可以是一個(gè)長度為 2 的元組或列表(表示在寬度和高度上的填充大小分別為多少)。默認(rèn)為 0。
groups:輸入和輸出通道之間的分組數(shù)。通常將其設(shè)置為 1,表示不進(jìn)行通道分組。如果設(shè)置為大于 1 的值,則表示在輸入和輸出通道之間進(jìn)行分組卷積。
bias:是否使用偏置。默認(rèn)為 True,表示使用偏置。如果設(shè)置為 False,則不使用偏置。
dilation:卷積核的膨脹率。可以是一個(gè)整數(shù)(表示在寬度和高度上的膨脹率相同),也可以是一個(gè)長度為 2 的元組或列表(表示在寬度和高度上的膨脹率分別為多少)。默認(rèn)為 1,表示不進(jìn)行膨脹卷積。

填充、步幅和多通道

與常規(guī)卷積不同,在轉(zhuǎn)置卷積中,填充被應(yīng)用于的輸出(常規(guī)卷積將填充應(yīng)用于輸入)。 例如,當(dāng)將高和寬兩側(cè)的填充數(shù)指定為1時(shí),轉(zhuǎn)置卷積的輸出中將刪除第一和最后的行與列。

tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, padding=1, bias=False)
tconv.weight.data = K
tconv(X)

計(jì)算機(jī)視覺:轉(zhuǎn)置卷積
在轉(zhuǎn)置卷積中,步幅被指定為中間結(jié)果(輸出),而不是輸入。 使用上圖中相同輸入和卷積核張量,將步幅從1更改為2會(huì)增加中間張量的高和權(quán)重,因此輸出張量在如下圖:
計(jì)算機(jī)視覺:轉(zhuǎn)置卷積

tconv = nn.ConvTranspose2d(1, 1, kernel_size=2, stride=2, bias=False)
tconv.weight.data = K
tconv(X)

計(jì)算機(jī)視覺:轉(zhuǎn)置卷積對(duì)于多個(gè)輸入和輸出通道,轉(zhuǎn)置卷積與常規(guī)卷積以相同方式運(yùn)作。 假設(shè)輸入有 c i c_i ci?個(gè)通道,且轉(zhuǎn)置卷積為每個(gè)輸入通道分配了一個(gè) k h × k w k_h\times k_w kh?×kw?的卷積核張量。 當(dāng)指定多個(gè)輸出通道時(shí),每個(gè)輸出通道將有一個(gè) c i × k h × k w c_i\times k_h\times k_w ci?×kh?×kw?的卷積核。

性質(zhì)

如果我們將 X X X代入卷積層 f f f來輸出 Y = f ( X ) Y=f(X) Y=f(X),并創(chuàng)建一個(gè)與 f f f具有相同的超參數(shù)、但輸出通道數(shù)量是 X X X中通道數(shù)的轉(zhuǎn)置卷積層 g g g,那么 g ( Y ) g(Y) g(Y)的形狀將與 X X X相同。 下面的示例可以解釋這一點(diǎn)。

X = torch.rand(size=(1, 10, 16, 16))
conv = nn.Conv2d(10, 20, kernel_size=5, padding=2, stride=3)
tconv = nn.ConvTranspose2d(20, 10, kernel_size=5, padding=2, stride=3)
tconv(conv(X)).shape == X.shape

這個(gè)性質(zhì)揭示了為什么這個(gè)操作被稱為反卷積,因?yàn)樗途矸e操作互逆

注意
1.數(shù)值不同,不可逆,形狀可逆
2.效率高。原因:
①普通卷積操作的前向傳播通過矩陣乘法一次實(shí)現(xiàn),而非形式上的卷積核進(jìn)行卷積并平移
②普通卷積操作的反向傳播是輸入乘轉(zhuǎn)置權(quán)重矩陣
③上述代碼表明,轉(zhuǎn)置卷積作用實(shí)質(zhì)上也是矩陣乘法,其前向傳播為普通卷積的反向傳播,反向傳播同理文章來源地址http://www.zghlxwxcb.cn/news/detail-479847.html

到了這里,關(guān)于計(jì)算機(jī)視覺:轉(zhuǎn)置卷積的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 7.卷積神經(jīng)網(wǎng)絡(luò)與計(jì)算機(jī)視覺

    7.卷積神經(jīng)網(wǎng)絡(luò)與計(jì)算機(jī)視覺

    計(jì)算機(jī)視覺是一門研究如何使計(jì)算機(jī)識(shí)別圖片的學(xué)科,也是深度學(xué)習(xí)的主要應(yīng)用領(lǐng)域之一。 在眾多深度模型中,卷積神經(jīng)網(wǎng)絡(luò)“獨(dú)領(lǐng)風(fēng)騷”,已經(jīng)被稱為計(jì)算機(jī)視覺的主要研究根據(jù)之一。 卷積神經(jīng)網(wǎng)絡(luò)最初由 Yann LeCun(楊立昆)等人在1989年提出,是最初取得成功的深度神經(jīng)

    2024年04月10日
    瀏覽(23)
  • 計(jì)算機(jī)視覺:深層卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建

    計(jì)算機(jī)視覺:深層卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建

    上一節(jié)課程中我們學(xué)習(xí)了單卷積層的前向傳播,本次課程我們構(gòu)建一個(gè)具有三個(gè)卷積層的卷積神經(jīng)網(wǎng)絡(luò),然后從輸入(39*39*3)開始進(jìn)行三次卷積操作,我們來看一下每次卷積的輸入和輸出維度的變化。 第一層使用3*3*3的過濾器來提取特征,那么f[1]=3,然后步長s[1]=1,填充p[1]

    2024年02月10日
    瀏覽(30)
  • 【計(jì)算機(jī)視覺】萬字長文詳解:卷積神經(jīng)網(wǎng)絡(luò)

    【計(jì)算機(jī)視覺】萬字長文詳解:卷積神經(jīng)網(wǎng)絡(luò)

    以下部分文字資料整合于網(wǎng)絡(luò),本文僅供自己學(xué)習(xí)用! 如果輸入層和隱藏層和之前一樣都是采用全連接網(wǎng)絡(luò),參數(shù)過多會(huì)導(dǎo)致 過擬合 問題,其次這么多的參數(shù)存儲(chǔ)下來對(duì)計(jì)算機(jī)的內(nèi)存要求也是很高的 解決這一問題,就需要用到——卷積神經(jīng)網(wǎng)絡(luò) 這是一種理解卷積的角度(

    2024年02月19日
    瀏覽(40)
  • 【深度學(xué)習(xí)】計(jì)算機(jī)視覺(五)——卷積神經(jīng)網(wǎng)絡(luò)詳解

    【深度學(xué)習(xí)】計(jì)算機(jī)視覺(五)——卷積神經(jīng)網(wǎng)絡(luò)詳解

    卷積神經(jīng)網(wǎng)絡(luò)(CNN) 卷積神經(jīng)網(wǎng)絡(luò)基本上應(yīng)用于圖像數(shù)據(jù)。假設(shè)我們有一個(gè)輸入的大小(28 * 28 * 3),如果我們使用正常的神經(jīng)網(wǎng)絡(luò),將有2352(28 * 28 * 3)參數(shù)。并且隨著圖像的大小增加參數(shù)的數(shù)量變得非常大。我們“卷積”圖像以減少參數(shù)數(shù)量。 CNN的輸入和輸出沒什么特別

    2024年02月06日
    瀏覽(34)
  • 計(jì)算機(jī)視覺:卷積層的參數(shù)量是多少?

    計(jì)算機(jī)視覺:卷積層的參數(shù)量是多少?

    卷積核的參數(shù)量是卷積神經(jīng)網(wǎng)絡(luò)中一個(gè)重要的概念,它決定了網(wǎng)絡(luò)的復(fù)雜度和計(jì)算量。在深度學(xué)習(xí)中,卷積操作是一種常用的操作,用于提取圖像、語音等數(shù)據(jù)中的特征。卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)點(diǎn)在于稀疏連接和權(quán)值共享,這使得卷積核的參數(shù)相較于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)要少很多。

    2024年02月14日
    瀏覽(21)
  • 計(jì)算機(jī)視覺:通過邊緣檢測(cè)探究卷積的特征提取功能

    計(jì)算機(jī)視覺:通過邊緣檢測(cè)探究卷積的特征提取功能

    在前面的課程中,我們學(xué)習(xí)了卷積核的運(yùn)算,同時(shí)我們也學(xué)習(xí)了卷積核的含義,我們可以將卷積核理解為特征提取器,也就是說一個(gè)卷積核就是一個(gè)特征提取器,很多人對(duì)這種說法不了解,下面我們就通過一個(gè)邊緣檢測(cè)的例子來看一下卷積核是如何進(jìn)行邊緣特征的提取的。

    2024年02月13日
    瀏覽(34)
  • 計(jì)算機(jī)視覺:卷積核的參數(shù)是如何得到的?

    計(jì)算機(jī)視覺:卷積核的參數(shù)是如何得到的?

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種深度學(xué)習(xí)模型,其主要特點(diǎn)是使用卷積層來提取特征。卷積層的核心是卷積核,也稱為濾波器(filter)。卷積核是一個(gè)小的矩陣,通過卷積操作將輸入數(shù)據(jù)中的特征提取出來。卷積核的參數(shù)是如何學(xué)習(xí)得到的呢? 我們前面學(xué)

    2024年02月16日
    瀏覽(29)
  • 再見卷積神經(jīng)網(wǎng)絡(luò),使用 Transformers 創(chuàng)建計(jì)算機(jī)視覺模型

    再見卷積神經(jīng)網(wǎng)絡(luò),使用 Transformers 創(chuàng)建計(jì)算機(jī)視覺模型

    本文旨在介紹 / 更新 Transformers 背后的主要思想,并介紹在計(jì)算機(jī)視覺應(yīng)用中使用這些模型的最新進(jìn)展。 讀完這篇文章,你會(huì)知道…… 為什么 Transformers 在 NLP 任務(wù)中的表現(xiàn)優(yōu)于 SOTA 模型。 Transformer 模型的工作原理 這是卷積模型的主要限制。 Transformers 如何克服卷積模型的限

    2024年02月02日
    瀏覽(31)
  • Kears-4-深度學(xué)習(xí)用于計(jì)算機(jī)視覺-使用預(yù)訓(xùn)練的卷積網(wǎng)絡(luò)

    Kears-4-深度學(xué)習(xí)用于計(jì)算機(jī)視覺-使用預(yù)訓(xùn)練的卷積網(wǎng)絡(luò)

    本篇學(xué)習(xí)記錄主要包括:《Python深度學(xué)習(xí)》的第5章(深度學(xué)習(xí)用于計(jì)算機(jī)視覺)的第3節(jié)(使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò))內(nèi)容。 相關(guān)知識(shí)點(diǎn): 預(yù)訓(xùn)練模型的復(fù)用方法; 預(yù)訓(xùn)練網(wǎng)絡(luò) (pretrained network) 是一個(gè)保存好的網(wǎng)絡(luò),之前已經(jīng)在大型數(shù)據(jù)集上完成訓(xùn)練。理論上數(shù)據(jù)集足夠大

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包