關於深度學習中卷積核操作


直接舉例進行說明輸出圖片的長和寬。

輸入照片為:32*32*3,

這是用一個Filter得到的結果,即使一個activation map。(filter 總會自動擴充到和輸入照片一樣的depth)。

當我們用6個5*5的Filter時,我們將會得到6個分開的activation maps,如圖所示:

得到的“新照片”的大小為:28*28*6.

其實,每個卷積層之后都會跟一個相應的激活函數(activation functions):

微觀上,假設現在input為7*7,Filter尺寸為3*3,output過程如下所示:

最終得到一個5*5的output。

假設,input為7*7,Filter尺寸為3*3,stride(步長)為2,則output過程如下所示:

最終得到一個3*3的output。

注:在這個例子中stride不能為3,因為那樣就越界了。

總的來說

Output size=(N-F)/stride +1

當有填充(pad)時,例如對一個input為7*7進行pad=1填充,Filter為3*3,stride=1,會得到一個7*7的output。

Output size=(N-F+2*pad)/stride +1

注:0填充(pad)的主要目的是因為我們在前面的圖中所示的那樣,一直用5*5的Filter進行卷積,會導致體積收縮的太快,不利於特征的提取。

舉例說明:

在這里要注意一下1*1的卷積核,為什么呢?

舉例:一個56*56*64的input,用32個1*1的卷積核進行卷積(每一個卷積核的尺寸為1*1*64,執行64維的點乘操作),將得到一個56*56*32的output,看到輸出的depth減少了,也就是降維,那么parameters也會相應的減少。

下面介紹一下Pooling(池化)操作:

將represention變小,易於操作和控制,對每一個activation map單獨進行操作。

用的最多的是最大池化(MAX POOLING):

Output size=(N-F)/S +1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM