码迷,mamicode.com
首页 > 其他好文 > 详细

caffe源码 池化层 反向传播

时间:2017-10-18 13:18:21      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:窗口   convert   uda   average   ec2   最大值   mac   代码   输入参数   

图示池化层(前向传播)

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

输入参数如下:
输入: 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源码 池化层 反向传播

标签:窗口   convert   uda   average   ec2   最大值   mac   代码   输入参数   

原文地址:http://www.cnblogs.com/ERKE/p/7686088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!