【caffe】caffe之反卷积层
1.前言
![](/assets/blank.gif)
![](/assets/blank.gif)
2.图像卷积
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
图6中蓝色为原图像,白色为对应卷积所增加的padding,通常全部为0,绿色是卷积后图片。图6的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积,滑动步长为1,卷积核的中心元素对应卷积后图像的像素点。可以看到卷积后的图像是4X4,比原图2X2大了,我们还记1维卷积大小是n1+n2-1,这里原图是2X2,卷积核3X3,卷积后结果是4X4,与一维完全对应起来了。其实这才是完整的卷积计算,其他比它小的卷积结果都是省去了部分像素的卷积。下面是WIKI对应图像卷积后多出部分的解释:
Kernel convolution usually requires values from pixels outside of the image boundaries. There are a variety of methods for handling image edges.意思就是多出来的部分根据实际情况可以有不同的处理方法。(其实这里的full卷积就是后面要说的反卷积)
3.反卷积(后卷积,转置卷积)
![](/assets/blank.gif)
![](/assets/blank.gif)
补充一个资料:
图6与图7出处,https://github.com/vdumoulin/conv_arithmetic
————新增反卷积过程解释—————-
经过上面的解释与推导,对卷积有基本的了解,但是在图像上的deconvolution究竟是怎么一回事,可能还是不能够很好的理解,因此这里再对这个过程解释一下。
目前使用得最多的deconvolution有2种,上文都已经介绍。
方法1:full卷积, 完整的卷积可以使得原来的定义域变大
方法2:记录pooling index,然后扩大空间,再用卷积填充
图像的deconvolution过程如下,
![](/assets/blank.gif)
输入:2x2, 卷积核:4x4, 滑动步长:3, 输出:7x7
即输入为2x2的图片经过4x4的卷积核进行步长为3的反卷积的过程
1.输入图片每个像素进行一次full卷积,根据full卷积大小计算可以知道每个像素的卷积后大小为 1+4-1=4, 即4x4大小的特征图,输入有4个像素所以4个4x4的特征图
2.将4个特征图进行步长为3的fusion(即相加); 例如红色的特征图仍然是在原来输入位置(左上角),绿色还是在原来的位置(右上角),步长为3是指每隔3个像素进行fusion,重叠部分进行相加,即输出的第1行第4列是由红色特阵图的第一行第四列与绿色特征图的第一行第一列相加得到,其他如此类推。
可以看出翻卷积的大小是由卷积核大小与滑动步长决定, in是输入大小, k是卷积核大小, s是滑动步长, out是输出大小
得到 out = (in - 1) * s + k
上图过程就是, (2 - 1) * 3 + 4 = 7
【caffe】caffe之反卷积层相关推荐
- Caffe源码精读 - 7 - Caffe Layers之deconv_layer(反卷积层)
Class_7 Caffe Layers之deconv_layer(反卷积层) 1. 概述 deconv_layer是反卷积层,在DL领域又叫转置卷积. 反卷积层到目前最大的用处就是实现上采样.典型的 ...
- 【深度学习】深入浅出神经网络框架的模型元件(池化、正则化和反卷积层)
[深度学习]深入浅出神经网络框架的模型元件(池化.正则化和反卷积层) 文章目录 1 池化层 1.1 MaxPooling2D 1.2 MaxPooling1D: 1.3 AveragePooling2 ...
- 反卷积原理 + pytorch反卷积层参数output_padding
一般我们会认为2维卷积的计算分为了以下3类: 1.full 2.same 3. valid 参考:https://cn.mathworks.com/help/matlab/ref/conv2. ...
- 卷积神经网络中卷积层、反卷积层和相关层
卷积层.反卷积层和相关层三个层之间有很大的相似之处,现在好好分析一下. 1.卷积层 下图较大网格表示一幅图片,有颜色填充的网格表示一个卷积核,卷积核的大小为33.假设我们做步长为1的卷积操作,表示卷积 ...
- 反卷积(Transposed Convolution, Fractionally Strided Convolution or Deconvolution)
反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional networks中,但是并没有指定反卷积这个名字,反卷积这个术语正式的使用是在其 ...
- 反卷积在神经网络可视化上的成功应用
反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional networks中,但是并没有指定反卷积这个名字,反卷积这个术语正式的使用是在其 ...
- 反卷积(转置卷积)的理解
参考:打开链接 卷积: 就是这个图啦,其中蓝色部分是输入的feature map,然后有3*3的卷积核在上面以步长为2的速度滑动,可以看到周围还加里一圈padding,用更标准化的参数方式来描述这个过 ...
- 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式
1. 卷积与反卷积(转置卷积)的关系推导: 2. Transposed Convolution, Fractionally Strided Convolution or Deconvolution h ...
- 一文读懂什么是反卷积
反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional networks中,但是并没有指定反卷积这个名字,反卷积这个术语正式的使用是在其 ...
最新文章
- python代码大全o-python文件编码及执行
- Java成员变量和局部变量的区别
- oracle unused用法,set unused的用法(ORACLE刪除字段)
- python字符串转浮点数_Python | 打印不同的值(整数,浮点数,字符串,布尔值)...
- 硬干货!一张图弄清楚在ESXi下如何进行网络抓包
- encapsulation
- 动态引入js文件和css样式表文件
- redis 哨兵的原理
- 入门级详细USB移植教程——致正在为USB烦恼的朋友
- 威纶通触摸屏与仪表通讯_威纶通触摸屏与英威腾变频器通信详细说明
- YTU OJ 1329: 手机尾号评分
- 以核心素养为导向的计算机教学方式,“雨花学术论坛”再开讲:让核心素养在课堂“落地生根”...
- echarts html ppt,PPT美化之echarts
- Facebook 如何存储150亿张、1.5PB的照片
- Flask学习笔记(一)
- Android 各版本 设置 USB 默认连接 MTP 模式 ( Android 6.0+ )
- 赛码网: 小明很喜欢打字,今天小红给了小明一个字符串。
- 小程序前后台切换运行机制
- java spring ioc 实例_Spring 源码阅读(IOC容器)-bean的实例化以及注入
- TS 如何解决已声明“XXX”,但从未读取其值
热门文章
- 北大操作系统陈向群第六章知识点
- AI人工智能识别技术如何助力构建风险监测预警系统?
- Python大学生心理健康管理系统django项目源码
- 太强了!60 种可视化图表制作工具和使用场景(推荐收藏)
- vue中h5项目怎么使用weui
- H264编码系列之profile level控制
- 5.0 数据库完整性详解(PRIMARY KEY、REFERENCES、CHECK、CONSTRAINT、DOMAIN、TRIGGER)
- 说文解字----矩阵分析(一)矩阵中的空间与秩
- Qt入门基础知识(vs2017+Qt5.12)
- 数字游戏 (number)