图示池化层(前向传播)
池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层:
输入参数如下:
输入: 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源码 池化层 反向传播 - Python技术站