Caffe源码精读 - 7 - Caffe Layers之deconv_layer(反卷积层)

Class_7 Caffe Layersdeconv_layer(反卷积层)

1. 概述

deconv_layer是反卷积层,在DL领域又叫转置卷积。

反卷积层到目前最大的用处就是实现上采样。典型的如yolov3和yolov4中,做feature map融合的时候,先采取1*1卷积降维,然后采用反卷积实现上采样。

       deconv_layer也是和base_conv_layer有千丝万缕的联系,鉴于在讲conv_layer的时候已经讲过,在此不做赘述。

2. deconv_layer

(1)compute_output_shape

compute_output_shape功能是用来计算反卷积输出的H和W信息。

首先是从传入的参数中,提取kernel_shape_data, stride_data, pad_data, dilation_data。

然后根据公式将H和W信息导入output_shape。

(2)Forward_cpu

在反卷积层中,前向计算是调用的backward_cpu_gemm这个函数。具体就是实现bottom_data * weight = top_data。

(3)Backward_cpu

Backward_cpu稍微复杂一些。

首先是调用backward_cpu_bias对偏执进行反向传播。

然后调用weight_cpu_gemm更新权重的偏差,权重偏差更新公式是:

weight_diff = top_diff  *  bottom_data + weight_diff

最后调用forward_cpu_gemm更新bottom_diff, 更新公式是:

bottom_diff = top_diff * weight_data。

 

3. 更新weight_data和bias_data

所有的反向操作的目的都是更新weight_data和bias_data。

当我们计算好了weight_diff和bias_diff以后,更新权值和偏置这一步都是由各优化器的ApplyUpdate来完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值