上一篇介绍了卷积的输出分辨率计算,现在这一篇就来写下转置卷积的分辨率计算。转置卷积(Transposed convolution),转置卷积也有叫反卷积(deconvolution)或者fractionally strided convolutions。

根据《A guide to convolution arithmetic for deep learning》的介绍的话,在进行卷积操作的时候我们是可以把卷积操作重写为以下的形式:

这个时候,输出是可以表示为

如果反向操作,输入为y的话,要得到x的话,其实就只要一个C的转置去乘以y就可以得到一个分辨率与x一样的输出:

而这个CT也是由输入的卷积核重构出来的。

接下来就分类计算转置卷积的输出分辨率:

一、padding!=0,strides=1

不做padding,步长为1的情况下,输出计算是比较简单的:

二、padding=half(same),strides=1

此时的输出分辨率是等于输入分辨率的。

其中,[]代表向下取整,

三、padding=full,strides=1

此时的p=k-1,所以输出分辨率为:

四、padding=0,strides!=1

五、padding!=0,strides!=1

输出分辨率为:

此时输出表示为:

其中,表示添加到右边和下边的0的个数。

参考

[1] Dumoulin V, Visin F. A guide to convolution arithmetic for deep learning[J]. 2016

过完了这个月,我们打开门

一些花开在高高的树上

一些果结在深深的地下

  -- 海子 《新娘》

CNN:转置卷积输出分辨率计算的更多相关文章

  1. CNN:扩张卷积输出分辨率计算

    扩张卷积(Dilated convolutions)是另一种卷积操作,也叫做空洞卷积(Atrous convolution).相比于普通的卷积,相同的卷积核,空洞卷积能够拥有更大的感受野. 相同的卷积 ...

  2. CNN:卷积输出分辨率计算

    卷积是CNN非常核心的操作,CNN主要就是通过卷积来实现特征提取的,在卷积操作的计算中会设计到几个概念:步长(strides).补充(padding).卷积核(kernel)等,那卷积的输出分辨率计算 ...

  3. CNN中卷积层的计算细节

    原文链接: https://zhuanlan.zhihu.com/p/29119239 卷积层尺寸的计算原理 输入矩阵格式:四个维度,依次为:样本数.图像高度.图像宽度.图像通道数 输出矩阵格式:与输 ...

  4. 直接理解转置卷积(Transposed convolution)的各种情况

    使用GAN生成图像必不可少的层就是上采样,其中最常用的就是转置卷积(Transposed Convolution).如果把卷积操作转换为矩阵乘法的形式,转置卷积实际上就是将其中的矩阵进行转置,从而产生 ...

  5. 由浅入深:CNN中卷积层与转置卷积层的关系

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由forrestlin发表于云+社区专栏 导语:转置卷积层(Transpose Convolution Layer)又称反卷积层或分数卷 ...

  6. 卷积的三种模式:full、same、valid + 卷积输出size的计算

    转自https://blog.csdn.net/u012370185/article/details/95238828 通常用外部api进行卷积的时候,会面临mode选择. 这三种mode的不同点:对 ...

  7. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv

    搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里. 先来规范表达 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核 ...

  8. 『TensotFlow』转置卷积

    网上解释 作者:张萌链接:https://www.zhihu.com/question/43609045/answer/120266511来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  9. 深度学习笔记之CNN(卷积神经网络)基础

    不多说,直接上干货! 卷积神经网络(ConvolutionalNeural Networks,简称CNN)提出于20世纪60年代,由Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经 ...

随机推荐

  1. Day4 - M - Roads in Berland CodeForces - 25C

    There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Eac ...

  2. 005-PHP函数输出一行内容

    <?php function printBold($inputText) //定义function printBold() { print("<B>" . $in ...

  3. 《新标准C++程序设计》4.5(C++学习笔记15)

    实例:长度可变的整型数组类 int main() { //要编写可变长整型数组类,使之能如下使用: CArray a; //开始里的数组是空的 ; i < ; ++i) a.push_back( ...

  4. login SMTP send mail error : Unable to read data from the transport connection: net_io_connectionclosed

    client.Credentials = new NetworkCredential(sSMTPuser, sSMTPpass); client.Credentials = new NetworkCr ...

  5. DOM基础2——元素

    1.造元素 document.createElement("标签名") 例:var div_new=document.createElement("div"); ...

  6. espcms P8.19082801 vulnerability

    author: naiquan chai Net name:Hanamizuki花水木 Through  the vulnerability  we can get the webshell if w ...

  7. Win7安装Oracle Instantclient ODBC驱动 后配置DSN时出错的解决办法 SQORAS32

    安装过程简述 oracle官网下载了 instantclient-odbc-nt--.zip instantclient-basic-nt-.zip 我这是32位版的win7,按照需要下载对应的版本. ...

  8. IDA使用初步

    按空格看结构图,再按空格看汇编代码,按F5反编译 shift+F12 搜索中文字符串,通过字符串所在位置定位关键信息. 双击可能出flag的语句跳转至关键字符串. 想F5生成C伪代码,先crtl+X打 ...

  9. 多个Spring Boot项目部署在一个Tomcat容器无法启动

    转自https://www.cnblogs.com/tomxin7/p/9434085.html 业务介绍 最近用Spring Boot开发了一个翻译的小项目,但是服务器上还跑着其他项目,包括一个同样 ...

  10. <深入理解redis>读书笔记

    chapter2 键管理与数据结构 对大多数redis解决方案而言,键的命名设计至关重要.对于管理来说,内存消耗和redis性能都与数据结构设计相关.所以对开发者而言,最好有数据结构的命名文档规范. ...