0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度剖析卷積操作的維度計(jì)算

電子工程師 ? 來源:今日頭條 ? 作者:數(shù)據(jù)學(xué)習(xí)DataLearn ? 2021-03-24 15:38 ? 次閱讀

卷積操作的維度計(jì)算是定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的重要問題,在使用如PyTorch、Tensorflow深度學(xué)習(xí)框架搭建神經(jīng)網(wǎng)絡(luò)的時(shí)候,對(duì)每一層輸入的維度和輸出的維度都必須計(jì)算準(zhǔn)確,否則容易出錯(cuò),這里將詳細(xì)說明相關(guān)的維度計(jì)算。

一、卷積操作的維度計(jì)算

卷積操作的維度計(jì)算是定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的重要問題,在使用如PyTorch、Tensorflow等深度學(xué)習(xí)框架搭建神經(jīng)網(wǎng)絡(luò)的時(shí)候,對(duì)每一層輸入的維度和輸出的維度都必須計(jì)算準(zhǔn)確,否則容易出錯(cuò),這里將詳細(xì)說明相關(guān)的維度計(jì)算。

首先,我們看一下卷積操作涉及的東西,一個(gè)卷積操作需要定義卷積核的大小、輸入圖像的padding長度以及卷積操作的步長。以一個(gè)RGB圖像輸入為例,一個(gè)多卷積核操作的示意圖如下:

使用兩個(gè)卷積核掃描輸入圖像

這個(gè)例子的輸入數(shù)據(jù)是一個(gè)三維數(shù)據(jù),帶有通道數(shù),輸入數(shù)據(jù)第三個(gè)維度是通道數(shù),使用了兩個(gè)卷積核(濾波器)掃描得到一個(gè)帶有兩個(gè)通道的圖像(一個(gè)卷積核對(duì)一個(gè)三維的數(shù)據(jù),即帶多個(gè)通道的二維圖像掃描可以得到一個(gè)二維單通道圖像結(jié)果,要求卷積核也是三維,且通道數(shù)和輸入數(shù)據(jù)通道數(shù)一樣)。下面我們來描述具體計(jì)算。

假設(shè)輸入數(shù)據(jù)大小是w × h,其中,w是寬度,h是高度。掃描的卷積核大小是f × f。padding的長度是p(padding),步長是s(stride)。那么經(jīng)過卷積操作之后,輸出的數(shù)據(jù)大?。?/p>

如果輸入的數(shù)據(jù)是三維數(shù)據(jù),即:w × h × c。其中,w是寬度,h是高度,c是通道數(shù)(對(duì)于RGB圖像輸入來說,這個(gè)值一般是3,在文本處理中,通常是不同embedding模型的個(gè)數(shù),如采用騰訊訓(xùn)練的、谷歌訓(xùn)練的等)。這個(gè)時(shí)候的卷積核通常也是帶通道的三維卷積核:f × f × c。

注意,一般來說,卷積核的通道數(shù)c和輸入數(shù)據(jù)的通道數(shù)是一致的。因此,這個(gè)時(shí)候卷積之后的輸出依然是一個(gè)二維數(shù)據(jù),其大小為:

這里的維度做了向下取整,防止結(jié)果不是整數(shù)的情況。假如希望輸出的也是帶通道的結(jié)果,那么這時(shí)候就要使用多個(gè)卷積核來操作了,最終輸出的數(shù)據(jù)維度是:

其中c'是卷積核的個(gè)數(shù)。

二、深度學(xué)習(xí)框架中Conv1d、Conv2d

在像PyTorch、Tensorflow中,都有類似Conv1d、Conv2d和Conv3d的操作。這也都和卷積操作的維度有關(guān),里面的參數(shù)都要定義好。例如如下的卷積操作:

self.convs = nn.Sequential( nn.Conv1d(in_channels=32, out_channels=16, kernel_size=5, stride=1, padding=0), nn.BatchNorm1d(16), nn.ReLU(inplace=True) )

這里面的參數(shù)要定義好,否則容易出錯(cuò)。我們將分別介紹。

Conv1d是一維卷積操作,它要求輸入的數(shù)據(jù)是三維的,即:N × C_in × L_in。

最終輸出的參數(shù)也是三維的:N × C_out × L_out。

這里的N是mini batch size,C是通道數(shù)量,L是寬度。

這里的out_channels定義了將由幾個(gè)卷積核來掃描,kernel_size則定義了每一個(gè)卷積核大小,都可以自己定義。最終,輸出的min_batch_size不變,out_channels數(shù)量根據(jù)定義的參數(shù)來,而輸出的width計(jì)算如下:

深度學(xué)習(xí)卷積操作的維度計(jì)算

這里的p是上面padding的參數(shù)值,f是kernel_size的值。類似的,如果使用Conv2D做卷積操作,那么輸入就是四維的:N × C_in × H_in × W_in。

這里的N是min batch size,C_in是輸入數(shù)據(jù)的通道數(shù),H_in是輸入數(shù)據(jù)的高度,W_in是輸入數(shù)據(jù)的寬度。其輸出也是四維的,根據(jù)定義的卷積核大小和數(shù)量得到的輸出維度如下:N × C_out × H_out × W_out。其中,C_out是根據(jù)卷積核的數(shù)量定義的輸出數(shù)據(jù)的通道數(shù),因?yàn)橐粋€(gè)卷積核只能掃描得到一個(gè)二維圖。其中H_out 和 W_out的計(jì)算如下:

三、總結(jié)

卷積操作的輸入和輸出數(shù)據(jù)的維度在構(gòu)建神經(jīng)網(wǎng)絡(luò)中很重要,也很容易出錯(cuò)。使用PyTorch或者Tensoflow構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候一定要注意參數(shù)的設(shè)置,如果計(jì)算錯(cuò)誤,下一層的輸入與上一層的輸出對(duì)不上那么很有可能失敗。為了避免這種情況發(fā)生,可以先用小數(shù)據(jù)集測試,同時(shí)為了檢測哪里出錯(cuò)可以在測試的時(shí)候把每一層的輸出結(jié)果的維度(shape)打印出來,這樣就更容易檢測結(jié)果了。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    158

    文章

    7596

    瀏覽量

    176600
  • RGB
    RGB
    +關(guān)注

    關(guān)注

    4

    文章

    785

    瀏覽量

    58205
  • 卷積
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    18466
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度學(xué)習(xí)中反卷積的原理和應(yīng)用

    深度學(xué)習(xí)的廣闊領(lǐng)域中,反卷積(Deconvolution,也稱作Transposed Convolution)作為一種重要的圖像上采樣技術(shù),扮演著至關(guān)重要的角色。特別是在計(jì)算機(jī)視覺任務(wù)中,如圖
    的頭像 發(fā)表于 07-14 10:22 ?696次閱讀

    基于PyTorch的卷積核實(shí)例應(yīng)用

    深度學(xué)習(xí)和計(jì)算機(jī)視覺領(lǐng)域,卷積操作是一種至關(guān)重要的技術(shù),尤其在圖像處理和特征提取方面發(fā)揮著核心作用。PyTorch作為當(dāng)前最流行的深度學(xué)習(xí)
    的頭像 發(fā)表于 07-11 15:19 ?235次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念、原理及特點(diǎn)

    的基本概念、原理、特點(diǎn)以及在不同領(lǐng)域的應(yīng)用情況。 一、卷積神經(jīng)網(wǎng)絡(luò)的基本概念 卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)算法,它由多層卷積層和池化層堆疊而成。卷積
    的頭像 發(fā)表于 07-11 14:38 ?398次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的卷積操作

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)中的卷積操作是其核心組成部分,對(duì)于圖像識(shí)別、語音識(shí)別、自然語言處理等領(lǐng)域具有重要意義。本文將從卷積
    的頭像 發(fā)表于 07-04 16:10 ?308次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)示例

    分類。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積層(Convolutional Layer) 卷積層是CNN中的核心組件,用于提取圖像特征。卷積層由多個(gè)
    的頭像 發(fā)表于 07-03 10:51 ?274次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)原理

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)原理、結(jié)構(gòu)
    的頭像 發(fā)表于 07-03 10:49 ?388次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)分類方法有哪些

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像分類、目標(biāo)檢測、語義分割等計(jì)算機(jī)視覺任務(wù)。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:40 ?265次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)計(jì)算過程和步驟

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、視頻分析、自然語言處理等領(lǐng)域。本文將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算
    的頭像 發(fā)表于 07-03 09:36 ?225次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的組成部分有哪些

    卷積層、池化層、激活函數(shù)、全連接層、損失函數(shù)、優(yōu)化算法等,并探討它們在CNN中的作用和應(yīng)用。 卷積層(Convolutional Layer) 卷積層是CNN中的核心組成部分,它通過卷積
    的頭像 發(fā)表于 07-03 09:31 ?336次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN)是一種深度學(xué)習(xí)模型,由多層卷積層和池化層堆疊而成。CNN通過
    的頭像 發(fā)表于 07-03 09:28 ?320次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    、訓(xùn)練過程以及應(yīng)用場景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋深度學(xué)習(xí)模型,其核心思想是利用卷積
    的頭像 發(fā)表于 07-03 09:15 ?220次閱讀

    深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)作為其中的重要分支,已經(jīng)在多個(gè)領(lǐng)域取得了顯著的應(yīng)用成果。從圖像識(shí)別、語音識(shí)別
    的頭像 發(fā)表于 07-02 18:19 ?560次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)及其功能

    。 引言 深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,它通過模擬人腦神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能,實(shí)現(xiàn)對(duì)數(shù)據(jù)的自動(dòng)學(xué)習(xí)和特征提取。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中的一種重要模型,它通過卷積
    的頭像 發(fā)表于 07-02 14:45 ?536次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用

    卷積操作 卷積神經(jīng)網(wǎng)絡(luò)的核心是卷積操作。卷積操作
    的頭像 發(fā)表于 07-02 14:28 ?565次閱讀

    深度剖析 IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)

    深度剖析 IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)
    的頭像 發(fā)表于 11-24 14:48 ?539次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>剖析</b> IGBT 柵極驅(qū)動(dòng)注意事項(xiàng)