【存档】转置卷积&膨胀卷积

A. Transposed Convolution

参考:转置卷积
转置卷积

  • 上采样,实现从低维到高维
  • 属于卷积,但不等于逆卷积
    在这里插入图片描述

Pytorch实现nn.ConvTranspose2d

用torch.nn中的nn.ConvTranspose2d()函数,参数如下(dilation为膨胀元素一般为1)
在这里插入图片描述
输出特征图尺寸计算公式:
在这里插入图片描述
具体实现

import torch
import torch.nn as nn

def transposed_conv_official():
    feature_map = torch.as_tensor([[1, 0],
                                   [2, 1]], dtype=torch.float32).reshape([1, 1, 2, 2])
    print(feature_map)
    trans_conv = nn.ConvTranspose2d(in_channels=1, out_channels=1,
                                    kernel_size=3, stride=1, bias=False)
    trans_conv.load_state_dict({"weight": torch.as_tensor([[1, 0, 1],
                                                           [0, 1, 1],
                                                           [1, 0, 0]], dtype=torch.float32).reshape([1, 1, 3, 3])})
    print(trans_conv.weight)
    output = trans_conv(feature_map)
    print(output)

def main():
    transposed_conv_official()

if __name__ == '__main__':
    main()

B. Dilation Convolution

参考:膨胀卷积
膨胀卷积

作用:

  • 增大感受野
    (对比maxpooling在增大感受野的同时丢失细节和小目标,且无法通过上采样恢复)
  • 保持原输入特征图的宽和高

gridding effect

——连续使用3个膨胀系数r=2的膨胀卷积时,Layer4上一个pixel利用到了Layer1上的数据并不是连续的,每个非零元素之间都存在间隔。
在这里插入图片描述

对比不同膨胀系数的膨胀卷积的堆叠效果(参数数量相同),r=[1,2,3]在感受野用到的非零元素区域是连续的。
在这里插入图片描述

Hybird Dilated Convolution (HDC)

  • M 2 ≤ K M_2 \leq K M2K
    第二层的两个非零元素之间的最大距离 ≤ 该层卷积核的大小
    在这里插入图片描述
    M i M_i Mi:第i个layer的两个非零元素之间最大距离;
    r i r_i ri:第i个layer膨胀系数;
    M n = r n M_n=r_n Mn=rn:最后一个layer的非零元素最大距离等于膨胀系数。

  • 膨胀系数建议设置为锯齿状,如:r=[1,2,3,1,2,3]

  • 膨胀系数的公约数小于等于1,且 r 1 = 1 r_1=1 r1=1

  • 17
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值