caffe源码 池化层 反向传播

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了caffe源码 池化层 反向传播相关的知识,希望对你有一定的参考价值。

图示池化层(前向传播)

池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层:

输入参数如下:
输入: 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源码 池化层 反向传播的主要内容,如果未能解决你的问题,请参考以下文章

CNN 中池化层(子采样层)的反向传播

池化层的反向传播

卷积神经网络:反向传播过程的代码实现

卷积层,池化层等,前向/反向传播原理讲解

深度学习基础知识池化层pooling操作如何参与反向传播?

深度学习基础知识池化层pooling操作如何参与反向传播?