DeepLabv3源码

ASPP

分成了两部分:
第一个部分ASPPModule:
(1)__init__函数就根据dilations产生不同的卷积层。

# 一个dilation产生一个卷积核
for dilation in dilations:
self.append(
ConvModule(
self.in_channels,
self.channels,
1 if dilation == 1 else 3, #卷积核尺寸,当dilation=1时,1×1,p=0的卷积核;当不等于1时,3×3,p=dilation
dilation = dilation,
padding = 0 if dilation == 1 else dilation,    #=1,p=0;不等于1,p=dilation
conv_cfg=self.conv_cfg,
norm_cfg=self.norm_cfg,
act_cfg=self.act_cfg))

根据DeepLabv3的配置文件,dilations=(1, 12, 24, 36),其实就是根据膨胀系数使用较大的padding,来保证feat_map的不变。空洞卷积的计算公式,就是改变卷积核的大小k’=k+(k-1)*(d-1),其中k为原来卷积核的大小,d为膨胀系数。然后特征图尺寸的计算是一样的。

(2)forward函数:对输入的x,每种尺度卷积来一次,输出成列表出来
第二个部分ASPPHead:

  1. _init__函数:
    (a)初始化image_pool,一个平均池化层(尺度掉到1),然后1×1卷积(带BN)
    (b)初始化ASPP
    (c)初始化bottleneck卷积块,3×3,p=1,带BN
  2. forward函数:输入x
    (a)x进行image_pool前向传播得到x1,然后对x1使用双线性插值恢复到x的尺度。
    (b)x再经过ASPP模块,和(a)一起得到有5个元素的list
    (c)将list中的元素进行cat,然后进行卷积处理,然后进行分割
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值