caffe源码 卷积层

1、通俗易懂理解卷积

  • 图示理解神经网络的卷积
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 )

如下图所示:
cnn 动态图

2、深入理解卷积

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

2.1、理解im2col

  • 图示理解im2col
input: 3 * 4 * 4  ( c * h * w )
卷积核: 1 * 3 * 3 * 3  ( n * c * h * w  只考虑一个卷积核的情况 )
output:1*  ( 3 * 3 * 3 ) * ( 2 * 2 )  ( n * h * w )

如下图所示:
im2col

3、卷积层的实现

3.1、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

3.2、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(累积梯度)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值