內容
1. 卷積神經網絡中卷積核維度
一個卷積核是三維的(channel×height×width),channel 其中表示輸入的維度, 每個卷積層有若干卷積核,一個卷積核輸出的feature map是二維的,每層輸出的feature map數量和卷積核數量相等。
以經典的AlexNet爲例
輸入圖像是227×227×3(注1),conv1的卷積核參數是:
kernel_size: 11
stride: 4
num_output: 96
因此實際的卷積核維度是11×11×3,channel是輸入的圖像的第三維(如果是後面的卷積層,其卷積核的channel是與之做卷積的輸入的feature map的數量),即3,做卷積的時候,是11×11×3的卷積核和輸入圖像裏的11×11×3的塊進行卷積,得到一個值,卷積的過程是在height和width上滑動,第三維上不滑動,因此得到的feature map是二維的。
下面這個動畫動態展示了卷積的過程:
2.caffe中卷積的實現
使用im2col(caffe源碼這裏)的方法將卷積轉爲矩陣相乘,圖如下:
3. 卷積參數的計算
對於某一個卷積層的參數parameters個數爲:
其中 表示考慮偏置
對於某一個全連接層的參數parameters個數爲:
其中 表示考慮偏置, 如果上層是卷積層,
就是上層的輸出三維矩陣元素個數,即三個維度相乘
4. FLOPS 的計算
FLOPS:全稱是floating point operations per second,意指每秒浮點運算次數
對於某個卷積層,它的FLOPs數量爲:,其中
表示該層參數的數目, H*W表示feature map的大小.
5.reference
1.http://caffecn.cn/?/question/158
2.https://www.zhihu.com/question/28385679
3.https://blog.csdn.net/sinat_34460960/article/details/84779219