Caffe源码精读 - 7 - Caffe Layers之deconv_layer(反卷积层)
Class_7 Caffe Layers之deconv_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(反卷积层)相关推荐
- Caffe源码解析(一) —— caffe.proto
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 caffe.proto是caffe数据结构定义的主要文件,本文主要是在caffe.proto代码的基础上加上了部分 ...
- 零基础学caffe源码 ReLU激活函数
零基础学caffe源码 ReLU激活函数 原创 2016年08月03日 17:30:19 1.如何有效阅读caffe源码 1.caffe源码阅读路线最好是从src/cafffe/proto/caffe ...
- caffe源码分析-layer
本文主要分析caffe layer层,主要内容如下: 从整体上说明下caffe的layer层的类别,以及作用 通过proto定义与类Layer简要说明下Layer的核心成员变量; Layer类的核心成 ...
- Caffe源码中Solver文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的 ...
- Caffe源码中Net文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容: ...
- Caffe源码中Pooling Layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/vision_layers ...
- Caffe源码中layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...
- Caffe源码中blob文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/blob.hpp文件的内容 ...
- Windows7上使用VS2013编译Caffe源码(不带GPU支持)步骤
1. 从https://github.com/BVLC/caffe/通过git clone下载caffe源码,master分支,版本号为09868ac:$ git clone https: ...
最新文章
- 怎么理解java面向对象_Java 面向对象理解?
- [转]Backup and restore history details
- html5 progress css,CSS content: attr() on HTML5 progress doesn't work
- Arthas 使用的各类方式
- 原始套接字与sniffer
- fedora 用安装 DVD 建立本地 yum 源
- python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
- 1.13编程基础之综合应用 45 十进制到八进制 python
- ubuntu14.04+CUDA7.5+cuDNN+caffe的超详细完整配置
- java 变位词,[Java教程]变位词的查找(下)
- Material使用09 MdCheckboxModule、MdMenuModule、MdTooltipModule
- AutoCAD DWG,DXF文件导出高清图片、PDF
- cad 打开硬件加速卡_CAD如何根据已知条件设计图形
- 微信小程序中的常用布局方式(总结)
- 『Hammerspoon』Mac 锁屏自动开关蓝牙
- c语言开发 kdj,KDJ——随机指标之王
- 【100个 Unity实用技能】 | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
- 计算机无法调整亮度,win10亮度无法调节怎么办_win10电脑亮度调节失灵的解决方法...
- 概率论各种基础分布期望和方差推导过程汇总
- 福邦X456多媒体双卡双待手机
热门文章
- [DIY]小日子过得不错的日本松下吹风机
- 设计模式系列之建造者模式构建实体类
- WinFrom中实现点击关闭按钮窗口在靠屏幕左边中间缓缓收缩
- 柔性屏是怎么被手机厂抢掉风头的?
- 【死磕Sharding-jdbc】---路由执行
- html div块背景斜线,div和css制作斜线示例分享
- CentOS7 - 从零开始学习 推荐新手入门
- Spring中Bean的理解以及@Bean的作用
- 解决Docker安装过程中yum源错误的“UnicodeEncodeError: ‘ascii‘ codec can‘t encode charact u‘\ufffd‘ in position“问题
- [HBZ分享] 小米手机如何解BL锁