為什麼CNN中的卷積核一般都是奇數 奇數,沒有偶數 偶數的?

時間 2021-05-06 16:12:58

1樓:rucinier

設輸入特徵圖尺寸為 ,輸出尺寸為,卷積核大小K,步長S,padding為p,那麼輸入和輸出之間滿足: 。在一般情形下,S=1,O=i,那麼上式可以化為:

,可以直觀地看出K是奇數。

2樓:

**使用奇數尺寸的濾波器的原因:**

《數字影象處理 (第三版)》(阮秋琦翻譯)p89

> 也可以使用偶數尺寸的濾波器,或使用混合有偶數尺寸和奇數尺寸的濾波器。但是,使用奇數尺寸的濾波器可簡化索引,並更為直觀,因為濾波器的中心落在整數值上。(偶數尺寸的中心並非乙個整數值)

3樓:Jeffery

以下是個人的拙見。

1,為了方便same padding時的處理。如步長為1時,要補充k-1的zero padding才能使輸出輸出的尺寸一致,這時候如果核大小k是偶數,則需要補充奇數的zero padding,不能平均分到feature map的兩側。

2,為了統一標準。卷積核的滑動是預設使用中心點作為基準而進行的,而奇數核擁有這樣天然的基準。(其實自己定義偶數核的基準也是可以的,如使用核的左上角作為基準。)

3,為了更好地獲取中心資訊。由於奇數核擁有天然的絕對中心點,因此在做卷積的時候能更好地獲取到中心這樣的概念資訊。

4樓:Peace

我的乙個猜測是:很多時候,我們需要卷積層output的height和width與input的大小保持一致.為了達到這個效果,往往需要stride = 1, zero-padding = (F - 1 )/2 .

F就是卷積核的大小.

如果F是偶數的話,zero padding的大小就不好確定了.

5樓:千佛山彭于晏

哈哈哈,剛看完吳恩達的課,他提了兩點原因。一是padding的原因,如果f是奇數,就可以從影象的兩邊對稱的padding。第二點是奇數的f 有central pixel 可以方便的確定position.

6樓:pdbsettrace

我做過對比實驗,用了偶數卷積核,其他引數設定都沒變,效果出奇差。padding方式就是樓上說的same。原因的話,我認為樓上說的中心點理論和補零理論都有點道理。

7樓:孫建東

個人覺得,卷積核選用奇數還是偶數與使用的padding方式有關。當進行valid convolution或使用full convolution時,選用奇數還是偶數的差別並不是很大。但是,若使用的是same convolution時就不一樣了。

當在乙個寬度為m的輸入維度(張量維)上使用寬度為k的卷積核時,same convolution需要補k-1個0。如果k為奇數的話,補的這k-1個0可以在兩側對稱分布,如果是偶數則不然。

8樓:蔡世勳

奇數相對於偶數,有中心點,對邊沿、對線條更加敏感,可以更有效的提取邊沿資訊。

偶數也可以使用,但是效率比奇數低。在數以萬計或億計的計算過程中,每個卷積核差一點,累計的效率就會差很多。

9樓:文刀叉點

因為奇數可以寫成2*n+1的形式啊~

偶數就不行

在畫素這個領域裡,偶數框其實是沒有乙個「絕對的物理中心」的但是你如果只是想移動,那預設左上角為中心點也是可以的~現在大家都那麼約定俗成罷了

10樓:奈文

這個你具體可以參考下矩陣卷積的性質。一般來說,矩陣卷積會以卷積核模組的乙個部分為基準進行滑動,一般cnn中的卷積核是方形的,為了統一標準,會用卷積核模組中心為基準進行滑動,從被卷積矩陣第乙個框按一定布長從左到右從上到下進行滑動,最後滑動到被積矩陣最後一塊。所以卷積核一般為奇數,主要是方便以模組中心為標準進行滑動卷積。

為什麼CNN中的卷積核一般都是正方形,沒有長方形?

韓公升 我首先想到的是,數學上方陣要比任意矩陣容易操作。但是我沒寫過CNN底層,學的一些皮毛也告訴我反相傳播可以不需要求逆,所以僅僅是沒啥根據的懷疑,希望拋磚引到玉。 武俠超人 NLP領域中的很多都不是正方形啊。舉個最簡單的例子,最基礎經典的CNN做文字分類,卷積核長度是embedding的長度,寬...

在卷積神經網路中卷積核為什麼都是方形的?

智星雲服務 Why convolutions always use odd numbers as filter size 卷積運算,簡單地說,是兩個矩陣的元素乘積的組合。只要這兩個矩陣在維度上是一致的,就不應該有問題,所以我可以理解你的查詢背後的動機。然而,卷積的意圖是根據濾波器或核心對源資料矩陣 ...

特徵視覺化中,反卷積神經網路的卷積核為什麼可以是原卷積核的轉置?

打滾敬神 結論 使用轉置卷積,運算後,能夠將被啟用的神經元對應的感受野的原始位置的灰度值設為非零值 對於不能被啟用的神經元對應的感受野對應位置的灰度設為0 可能不嚴謹,只是對應分量丟失,見下面推導 引用縱橫同學的Setting 略有區別,我用的是列向量 縱橫 CNN視覺化從入門到放棄 懶得打late...