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来完成。

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

  1. Caffe源码解析(一) —— caffe.proto

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 caffe.proto是caffe数据结构定义的主要文件,本文主要是在caffe.proto代码的基础上加上了部分 ...

  2. 零基础学caffe源码 ReLU激活函数

    零基础学caffe源码 ReLU激活函数 原创 2016年08月03日 17:30:19 1.如何有效阅读caffe源码 1.caffe源码阅读路线最好是从src/cafffe/proto/caffe ...

  3. caffe源码分析-layer

    本文主要分析caffe layer层,主要内容如下: 从整体上说明下caffe的layer层的类别,以及作用 通过proto定义与类Layer简要说明下Layer的核心成员变量; Layer类的核心成 ...

  4. Caffe源码中Solver文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的 ...

  5. Caffe源码中Net文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容: ...

  6. Caffe源码中Pooling Layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/vision_layers ...

  7. Caffe源码中layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...

  8. Caffe源码中blob文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/blob.hpp文件的内容 ...

  9. Windows7上使用VS2013编译Caffe源码(不带GPU支持)步骤

    1.      从https://github.com/BVLC/caffe/通过git clone下载caffe源码,master分支,版本号为09868ac:$ git  clone https: ...

最新文章

  1. 怎么理解java面向对象_Java 面向对象理解?
  2. [转]Backup and restore history details
  3. html5 progress css,CSS content: attr() on HTML5 progress doesn't work
  4. Arthas 使用的各类方式
  5. 原始套接字与sniffer
  6. fedora 用安装 DVD 建立本地 yum 源
  7. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
  8. 1.13编程基础之综合应用 45 十进制到八进制 python
  9. ubuntu14.04+CUDA7.5+cuDNN+caffe的超详细完整配置
  10. java 变位词,[Java教程]变位词的查找(下)
  11. Material使用09 MdCheckboxModule、MdMenuModule、MdTooltipModule
  12. AutoCAD DWG,DXF文件导出高清图片、PDF
  13. cad 打开硬件加速卡_CAD如何根据已知条件设计图形
  14. 微信小程序中的常用布局方式(总结)
  15. 『Hammerspoon』Mac 锁屏自动开关蓝牙
  16. c语言开发 kdj,KDJ——随机指标之王
  17. 【100个 Unity实用技能】 | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
  18. 计算机无法调整亮度,win10亮度无法调节怎么办_win10电脑亮度调节失灵的解决方法...
  19. 概率论各种基础分布期望和方差推导过程汇总
  20. 福邦X456多媒体双卡双待手机

热门文章

  1. [DIY]小日子过得不错的日本松下吹风机
  2. 设计模式系列之建造者模式构建实体类
  3. WinFrom中实现点击关闭按钮窗口在靠屏幕左边中间缓缓收缩
  4. 柔性屏是怎么被手机厂抢掉风头的?
  5. 【死磕Sharding-jdbc】---路由执行
  6. html div块背景斜线,div和css制作斜线示例分享
  7. CentOS7 - 从零开始学习 推荐新手入门
  8. Spring中Bean的理解以及@Bean的作用
  9. 解决Docker安装过程中yum源错误的“UnicodeEncodeError: ‘ascii‘ codec can‘t encode charact u‘\ufffd‘ in position“问题
  10. [HBZ分享] 小米手机如何解BL锁