caffe源碼 池化層 反向傳播
阿新 • • 發佈:2017-10-18
C4D alt convert ec2 ted 操作 src 技術 space
圖示池化層(前向傳播)
池化層其實和卷積層有點相似,有個類似卷積核的窗口按照固定的步長在移動,每個窗口做一定的操作,按照這個操作的類型可以分為兩種池化層:
輸入參數如下:
輸入: 1 * 3 * 4 * 4
池化核: 4 * 4
pad: 0
步長:2
輸出參數如下:
輸出:1 * 3 * 2 * 2
- MAC (max pooling)在窗口中取最大值當做結果
- AVG (average pooling)在窗口中取平均值當做結果
池化層的反向傳播
按照前向傳播的分類,反向傳播也需要分成兩類
-
MAC (max pooling)
-
如果只看輸出矩陣中的一個點y,則有 y = max( x1 , x2, x3, ... );
-
所以對x求導後有(可以理解成分段函數的求導)
-
代碼實現:
可見上圖,這個xn如果影響多個y,則會疊加起來
-
-
AVG (average pooling)
-
如果只看輸出矩陣中的一個點y,則有 y = ( x1 , x2, x3, ... ,xn )/n;
-
所以對x求導後有
-
代碼實現
可見上圖,這個xn如果影響多個y,則會疊加起來
-
caffe源碼 池化層 反向傳播