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

caffe源码 卷积层

时间:2017-10-06 00:25:36      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:卷积   填充   技术分享   data   梯度   source   分享   public   caff   

通俗易懂理解卷积

  • 图示理解神经网络的卷积
    • input: 3 * 5 * 5 (c * h * w)
    • pading: 1
    • 步长: 2
    • 卷积核: 2 * 3 * 3 * 3 ( n * c * k * k )
    • output: 2 * 3 * 3 ( c * h * w )

如下图所示: 技术分享

深入理解卷积

  • 首先需要理解caffe里面的im2col和col2im
  • 然后 卷积层 其实和 全连接层 差不多了

理解im2col

  • 图示理解im2col
    • input: 3 * 4 * 4 ( c * h * w )
    • 卷积核: 3 * 3 * 3 ( c * h * w )
    • output: ( 3 * 3 * ) * ( 2 * 2 ) ( h * w )

如下图所示: 技术分享

卷积层的实现

im2col转换前
  • input: 1 * c * h * w
  • 卷积核: m * c * k * k
    • m 个卷积核
  • 步长: stride
  • 填充: pad
  • 扩展: dilation
  • output: 1 * m * H * W
    • H = ( h + 2 * pad - dilation * ( k - 1 ) ) / stride + 1
    • W = ( w + 2 * pad - dilation * ( k - 1 ) ) / stride + 1

im2col转换后
  • input: 1 * ( c * k * k ) * ( H * W )

  • weight: m * (c * k * k)

  • bias: m * 1

  • output: 1 * m * H * W

  • 则公式(即前向传播)为:output = input * weight + bias * 全1矩阵 ( 1 * H * W )

  • 反向传播和全连接层一样(详细参考全连接层的推导):

    • 梯度传递:bottom_diff = top_diff * weight
    • 对w求导:weight_diff = top_diff * bottom + weight_diff(累积梯度)
    • 对b求导:bias_diff = top_diff + bias_diff(累积梯度)

caffe源码 卷积层

标签:卷积   填充   技术分享   data   梯度   source   分享   public   caff   

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

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