反卷积理解

不定时更新

反卷积就是转置卷积,也可以写成两个矩阵相乘,通常由小尺寸变成大尺寸,反卷积的反向传播也是可行的。

如图是反卷积的过程:

下面介绍卷积的反向传播过程,此过程与反卷积相同。

反卷积的计算是把卷积的得到的结果与卷积核的转置相乘,所以也叫转置卷积。

卷积的过程如下图:

用矩阵表达:

反向传播的公式:

其矩阵形式为:

这时就转为计算的过程。

从前面的计算过程可以找出x11参与了A中哪些元素的计算,并且可以根据对应的前向计算得出反向传播的计算公式:

后面的矩阵即为卷积核的转置。

原文地址:https://www.cnblogs.com/ywheunji/p/10445124.html

时间: 2024-10-07 21:43:51

反卷积理解的相关文章

深度学习—反卷积的理解

1.Deconvolution大致可以分为以下几个方面: (1)非监督学习:unsupervised learning,其实就是covolutional sparse coding:这里的deconv只是观念上和传统的conv反向,传统的conv是从图片生成feature map,而deconv是用unsupervised的方法找到一组kernel和feature map,让它们重建图片. (2)CNN可视化:通过deconv将CNN中conv得到的feature map还原到像素空间,以观察特

Convolution Network及其变种(反卷积、扩展卷积、因果卷积、图卷积)

今天,主要和大家分享一下最近研究的卷积网络和它的一些变种. 首先,介绍一下基础的卷积网络. 通过PPT上的这个经典的动态图片可以很好的理解卷积的过程.图中蓝色的大矩阵是我们的输入,黄色的小矩阵是卷积核(kernel,filter),旁边的小矩阵是卷积后的输入,通常称为feature map. 从动态图中,我们可以很明白的看出卷积实际上就是加权叠加. 同时,从这个动态图可以很明显的看出,输出的维度小于输入的维度.如果我们需要输出的维度和输入的维度相等,这就需要填充(padding). 现在我们来看

第十四节,TensorFlow中的反卷积,反池化操作以及gradients的使用

反卷积是指,通过测量输出和已知输入重构未知输入的过程.在神经网络中,反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积神经网络,没有学习训练的过程.反卷积有着许多特别的应用,一般可以用于信道均衡.图像恢复.语音识别.地震学.无损探伤等未知输入估计和过程辨识方面的问题. 在神经网络的研究中,反卷积更多的是充当可视化的作用,对于一个复杂的深度卷积网络,通过每层若干个卷积核的变换,我们无法知道每个卷积核关注的是什么,变换后的特征是什么样子.通过反卷积的还原,可以对这些问题有个清晰的可视

Transposed Convolution 反卷积

Transposed convolutions也称作fractionally strided convolutions(本人比较喜欢这个称呼,比较直观),Upconvolution,deconvolutions i:表示一般卷积时候的输入图片的大小i*i               i':表示反卷积时候的输入图片的大小 k:表示一般卷积时候的kernel的大小i*i                 k'=k s:表示stride大小                               

第十五节,利用反卷积技术复原卷积网络各层图像

在第十三节,我们已经介绍了使用带有全局平均池化层的CNN对CIFAR10数据集分类,在学习了反卷积神经网络之后我们把第十三节那个程序里的卷积层可视化出来. 一 替换掉tf.nn.max_pool()函数 这里不再使用自己定义的max_pool_2x2函数,改成新加入的带有mask返回值得max_pool_with_argmax()函数: #定义占位符 input_x = tf.placeholder(dtype=tf.float32,shape=[None,24,24,3]) #图像大小24x2

tensorflow 卷积/反卷积-池化/反池化操作详解

Plese see this answer for a detailed example of how tf.nn.conv2d_backprop_input and tf.nn.conv2d_backprop_filter in an example. In tf.nn, there are 4 closely related 2d conv functions: tf.nn.conv2d tf.nn.conv2d_backprop_filter tf.nn.conv2d_backprop_i

[PyTorch]PyTorch中反卷积的用法

文章来源:https://www.jianshu.com/p/01577e86e506 pytorch中的 2D 卷积层 和 2D 反卷积层 函数分别如下: class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, bias=True) class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_si

Matlab 矩阵卷积理解(转载)

转载自:http://blog.csdn.net/andrewseu/article/details/51783181 在图像处理的过程中,经常会看到矩阵卷积的概念,比如说用一个模板去和一张图片进行卷积,因此很有必要了解矩阵卷积到了做了什么,具体又是怎么计算的. 在matlab中有conv2函数对矩阵进行卷积运算,其中有一个shape参数,取值具体有三种: -full - (default) returns the full 2-D convolution, -'same' - returns

CNN中的卷积理解和实例

卷积操作是使用一个二维卷积核在在批处理的图片中进行扫描,具体的操作是在每一张图片上采用合适的窗口大小在图片的每一个通道上进行扫描. 权衡因素:在不同的通道和不同的卷积核之间进行权衡 在tensorflow中的函数为例: conv2d: 任意的卷积核,能同时在不同的通道上面进行卷积操作. 卷积核的卷积过程是按照 strides 参数来确定的,比如 strides = [1, 1, 1, 1] 表示卷积核对每个像素点进行卷积,即在二维屏幕上面,两个轴方向的步长都是1.strides = [1, 2,