深度学习 | 反卷积/转置卷积 的理解 transposed conv/deconv

搞明白了卷积网络中所谓deconv到底是个什么东西后,不写下来怕又忘记,根据参考资料,加上我自己的理解,记录在这篇博客里。

先来规范表达

  • 为了方便理解,本文出现的举例情况都是2D矩阵卷积,卷积输入和核形状都为正方形,x和y轴方向的padding相同,stride也相同。
  • 记号:
     i,o,k,p,s   i , o , k , p , s 分别表示:卷积/反卷积的输入大小  input size   i n p u t   s i z e ,卷积/反卷积输出大小  output size   o u t p u t   s i z e ,卷积/反卷积核大小  kernel size   k e r n e l   s i z e  padding   p a d d i n g  stride   s t r i d e
  • 举例(如下左图):
    输入  XR(4,4)   X ∈ R ( 4 , 4 ) 矩阵,卷积核  wR(3,3)padding=
### Deconvolution 和 Convolution 的区别 卷积操作(Convolution)主要用于提取输入数据的空间特征,通常应用于图像处理领域。通过滑动窗口的方式,在输入上应用滤波器来生成特征图。这一过程会减少空间维度并增加通道数。 反卷积层(Deconvolution),也被称为转置卷积Transposed Convolution),并不执行传统意义上的逆向卷积运算。相反,其主要目的是放大特征图尺寸或将低分辨率的特征映射到高分辨率表示[^1]。 ```python import torch.nn as nn # 定义一个简单的卷积conv_layer = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, stride=1) # 定义一个简单的反卷积/转置卷积deconv_layer = nn.ConvTranspose2d(in_channels=64, out_channels=3, kernel_size=3, stride=1) ``` ### 应用场景对比 #### 卷积的应用 - **分类任务**:用于构建高效的特征提取网络结构,如VGGNet、ResNet等。 - **目标检测**:在Faster R-CNN中作为骨干网部分,负责捕捉不同尺度的目标信息。 - **语义分割**:尽管最终输出需要恢复原始大小,但在编码阶段仍然依赖于标准卷积获取局部细节特性。 #### 反卷积的应用 - **超分辨率重建**:将低分辨率图片转换成高质量版本,比如ESPCN模型就采用了这种技术。 - **风格迁移**:允许算法理解艺术作品的艺术风格并将之迁移到其他照片之上。 - **语义分割**:解码过程中利用反卷积逐步还原被压缩后的特征图至原图尺寸,以便像素级预测类别标签。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值