1. 程式人生 > >深度學習-卷積理解

深度學習-卷積理解

1.這篇文章以賈清揚的ppt說明了卷積的實質,更說明了卷積輸出影象大小應該為:

假設輸入影象尺寸為W,卷積核尺寸為F,步幅(stride)為S(卷積核移動的步幅),Padding使用P(用於填充輸入影象的邊界,一般填充0),那麼經過該卷積層後輸出的影象尺寸為(W-F+2P)/S+1。

2.它寫出為什麼會用padding?卷積核大小該如何確定?stride該如何確定?

1.這篇文章把卷積的過程寫得非常形象化,用簡單的例子講明白了卷積過程在caffe寫程式碼的時候是怎麼實現的。

2.它還寫了卷積後輸出影象大小N為:

N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w) + 1] (結果向上取整)

    image_h:輸入影象的高度

    image_w:輸入影象的寬度

    pad_h:在輸入影象的高度方向兩邊各增加pad_h個單位長度(因為有兩邊,所以乘以2)

    pad_w:在輸入影象的寬度方向兩邊各增加pad_w個單位長度(因為有兩邊,所以乘以2)

    kernel_h:卷積核的高度

    kernel_w:卷積核的寬度

    stride_h:高度方向的滑動步長;

    stride_w:寬度方向的滑動步長。

    因此,N為輸出影象大小的長寬乘積,也是卷積核在輸入影象上滑動可擷取的最大特徵數。

    K=k*k,表示利用卷積核大小的框在輸入影象上滑動所擷取的資料大小,與卷積核大小一樣大。

上面是一般情況下的計算,在tensorflow中根據padding時引數選擇不同,卷積輸出影象的計算方式也可能不同,見:Tensorflow中卷積的padding操作

3.池化大小的計算與卷積類似:

N=[((image_h + 2*pad_h – kernel_h)/stride_h)+ 1]*[((image_w +2*pad_w – kernel_w)/stride_w )+ 1] (結果向上取整)

    image_h:輸入影象的高度

    image_w:輸入影象的寬度

    pad_h:在輸入影象的高度方向兩邊各增加pad_h個單位長度(因為有兩邊,所以乘以2)

    pad_w:在輸入影象的寬度方向兩邊各增加pad_w個單位長度(因為有兩邊,所以乘以2)

    kernel_h:池化區域的高度

    kernel_w:區域的寬度

    stride_h:高度方向的滑動步長;

    stride_w:寬度方向的滑動步長。

    因此,N為輸出影象大小的長寬乘積,也是卷積核在輸入影象上滑動可擷取的最大特徵數。

附tensorflow卷積計算:

先定義幾個引數

輸入圖片大小 W×W
Filter大小 F×F
步長 S
padding的畫素數 P

於是我們可以得出:N = (W − F + 2P )/S+1
輸出圖片大小為 N×N

三.卷積時引數的理解

卷積運算時總是有一個引數需要選擇,matlab中是shape,python中是border_mode

關於shape選項的說明;

當shape=full時,返回全部二維卷積結果,即返回c的大小為(ma+mb-1)x(na+nb-1)
shape=same時,返回與a同樣大小的卷積中心部分
shape=valid時,不考慮邊界補零,即只要有邊界補出的零參與運算的都捨去,返回c的大小為(ma-mb+1)x(na-nb+1)

相關推薦

深度學習-理解

1.這篇文章以賈清揚的ppt說明了卷積的實質,更說明了卷積輸出影象大小應該為: 假設輸入影象尺寸為W,卷積核尺寸為F,步幅(stride)為S(卷積核移動的步幅),Padding使用P(用於填充輸入影象的邊界,一般填充0),那麼經過該卷積層後輸出的影

深度學習理解

最優化 span 好的 權重 獨立 邊界 濾波器 基礎 包含 1、參數共享的道理   如果在圖像某些地方探測到一個水平的邊界是很重要的,那麽在其他一些地方也會同樣是有用的,這是因為圖像結構具有平移不變性。所以在卷積層的輸出數據體的55x55個不同位置中,就沒有必要重新學習去

動圖形象理解深度學習

動圖形象理解深度學習卷積   https://www.toutiao.com/a6615770434111537667/     理解卷積神經網路CNN,特別是對第一次接觸卷積神經網路的人來說,經常會對諸如卷積核、濾波器、通道等概念和他們的堆疊

深度學習的直觀理解

轉自 | AI研習社 註明一下出處。 單通道卷積過程:        從卷積核(圖中3×3的陰影矩陣)開始,它一個小的權值矩陣。這個卷積核在 2 維輸入資料上「滑動」,對當前輸入的部分元素進行矩陣乘法,然後將結果匯為單個輸出畫素。 卷積核重複這個過程知道遍歷了整張

深度學習操作的理解

本文介紹對了對卷積核、濾波器、通道等概念的理解。 二維卷積 二維卷積就是卷積核(指的是一個小的權值矩陣)在二維輸入資料上滑動遍歷整張圖片,對當前輸入的部分元素進行矩陣乘法,將一個二維矩陣轉換為另一個二維矩陣,然後將結果輸出,輸出特徵實際上是在輸入資料相同位置

深度學習——神經網絡 的經典網絡(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)

足夠 論文 ogl 相關性 spa 原因 線性 pad fan 一、CNN卷積神經網絡的經典網絡綜述 下面圖片參照博客:http://blog.csdn.net/cyh_24/article/details/51440344 二、LeNet-5網絡

【讀書1】【2017】MATLAB與深度學習——層(4)

圖6-13 當影象矩陣與濾波器不匹配時,較大的重要元素不會起到顯著的作用Whenthe image matrix does not match the filter, the significant elements are notaligned 這是因為影象矩陣與濾波器不匹配,影象矩

深度學習 --- 神經網路CNN(LeNet-5網路學習演算法詳解)

上一節我們詳細探討了LeNet-5網路的架構,但是還沒有解釋該網路是如何進行學習的,如何更新權值的,本節將接著上一節進一步CNN的學習機制和權值更新過程,這裡請大家一定要對CNN網路有一個清晰的認識,知道每一層是做什麼的,為什麼這樣設定。原因在哪等。大家在學習的過程中需要多問自己幾個為什麼,這樣

深度學習 --- 神經網路CNN(LeNet-5網路詳解)

卷積神經網路(Convolutional Neural Network,CNN)是一種前饋型的神經網路,其在大型影象處理方面有出色的表現,目前已經被大範圍使用到影象分類、定位等領域中。相比於其他神經網路結構,卷積神經網路需要的引數相對較少,使的其能夠廣泛應用。 本節打算先介紹背景和簡單的基本

吳恩達《深度學習-神經網路》2--深度神經網路

1. Why look at case studies本節展示幾個神經網路的例項分析為什麼要講例項?近些年CNN的主要任務就是研究如何將基本構件(CONV、POOL、CF)組合起來形成有效的CNN,而學習瞭解前人的做法可以激發創造2. Classic Networks1)Le

深度學習--神經網路工作原理

萬能的知乎 從知乎上看一篇文章,問題是卷積神經網路工作原理直觀的解釋,知乎大神用各種動圖對卷積神經網路的訓練做了介紹。YJango的回答最為精彩。奉上鍊接,希望你也能從這個回答中對卷積神經網路有更為確切的認識。https://www.zhihu.com/question/

[人工智慧]深度學習神經網路的秒懂各種操作

作者:深度學習思考者 來給大家總結一下卷積神經網路的各種操作 ,大家能夠秒懂! 先來幾個靜態圖: 卷積演算法的一些神奇GIF動畫,包括不同的padding和strides。 上述是四種不同的卷積方式,大家都知道是哪種卷積吧

機器學習 -- >深度學習-- >神經網路(CNN)

上一篇我們詳細講解了人工神經網路以及DNN的原理。CNN主要應用在影象處理方面。這一講我們將詳細講解卷積神經網路CNN的原理以及在深度學習框架pytorch上的實現。 在講CNN之前我們需要了解這麼幾個問題? ①人工神經網路能用到計算機視覺上嗎? 答:能

深度學習神經網路大事件一覽

  深度學習(DeepLearning)尤其是卷積神經網路(CNN)作為近幾年來模式識別中的研究重點,受到人們越來越多的關注,相關的參考文獻也是層出不窮,連續幾年都佔據了CVPR的半壁江山,但是萬變不離其宗,那些在深度學習發展過程中起到至關重要的推動作用的經典文獻依然值得回味

深度學習: 核 為什麼都是 奇數size

卷積核一般都把size設為奇數,主要有以下兩個原因: 保護位置資訊:保證了 錨點 剛好在中間,方便以模組中心為標準進行滑動卷積,避免了位置資訊發生 偏移 。 padding時對稱:保證了 paddi

吳恩達-深度學習-神經網路-Stride 筆記

卷積中的步幅是另一個構建卷積神經網路的基本操作,讓我向你展示一個例子。如果你想用3×3的過濾器卷積這個7×7的影象,和之前不同的是,我們把步幅設定成了2。你還和之前一樣取左上方的3×3區域的元素的乘積,再加起來,最後結果為91。只是之前我們移動藍框的步長是1,現在移動的步長是

深度學習——學習部分資料彙總

導言 1. 關於卷積的一個血腥的講解:https://blog.csdn.net/aa578232405/article/details/74839554   網址 1.視覺化工具          http://scs

深度學習神經網路——經典網路GoogLeNet(Inception V3)網路的搭建與實現

一、Inception網路(google公司)——GoogLeNet網路的綜述 獲得高質量模型最保險的做法就是增加模型的深度(層數)或者是其寬度(層核或者神經元數), 但是這裡一般設計思路的情況下會出現如下的缺陷: 1.引數太多,若訓練資料集有限,容易過擬合; 2.網路越大

深度學習——神經網路在tensorflow框架下的應用案例

一、簡單的卷積神經網路的小應用 tensorflow框架下構建訓練一個簡單的3層卷積神經網路實現分類問題 (一)資料集介紹——SIGNS Datasets 教電腦破譯手語,在白色的牆壁前拍照,得到以下資料集。 現在的任務是建立一個演算法,使有語音障礙的人與不懂手語的人

深度學習-神經網路CNN-BN(Batch Normalization) 原理與使用過程詳解

前言 Batch Normalization是由google提出的一種訓練優化方法。參考論文:Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shif