1. 程式人生 > >CNN卷積具體計算過程

CNN卷積具體計算過程

上面的圖很清晰,

影象的通道是3個,8*8*3的影象

卷積層有5個卷積核,每一個卷積核的大小一定一樣(W 寬度,H 高度和D 深度)卷積核的深度(第三維)一定與影象的深度一樣。

整個影象(所有通道),經過每一個卷積核,得到一個featuremap,這個featuremap是壓縮的。

因此輸出的D 深度(通道數)就是卷積核的數量

卷積層尺寸的計算原理

  • 輸入矩陣格式:四個維度,依次為:樣本數、影象高度、影象寬度、影象通道數
  • 輸出矩陣格式:與輸出矩陣的維度順序和含義相同,但是後三個維度(影象高度、影象寬度、影象通道數)的尺寸發生變化。
  • 權重矩陣(卷積核)格式:同樣是四個維度,但維度的含義與上面兩者都不同,為:卷積核高度、卷積核寬度、輸入通道數、輸出通道數(卷積核個數)
  • 輸入矩陣、權重矩陣、輸出矩陣這三者之間的相互決定關係
    • 卷積核的輸入通道數(in depth)由輸入矩陣的通道數所決定。(紅色標註)
    • 輸出矩陣的通道數(out depth)由卷積核的輸出通道數所決定。(綠色標註)
    • 輸出矩陣的高度和寬度(height, width)這兩個維度的尺寸由輸入矩陣、卷積核、掃描方式所共同決定。計算公式如下。(藍色標註)

\begin{cases} height_{out} &= (height_{in} - height_{kernel} + 2 * padding) ~ / ~ stride + 1\\[2ex] width_{out} &= (width_{in} - width_{kernel} + 2 * padding) ~ / ~ stride + 1 \end{cases}

其實還有channel_out = K

輸出的D 深度(通道數)就是卷積核的數量