对于带孔带孔卷积(atrous convolution)rate的计算

在这里我们都知道感受野的含义,同时也知道带孔卷积是为了在不缩小feature  map 的大小的同时保持感受野大小不变,在这里我们要明确的说明感受野大小不变是怎么达到的,我们已一个3 layer 的net 来进行说明:

rate 是为了layer 能够保证原有的感受野,所以rate 的决定是由上一层的stride(stride >1 的一个作用就是增大下层的感受野)

rate的计算方式是rate *= stride,rate 的初始值为rate =1,如上图:layer 1 已经达到了output_stride的要求,接下来的layer2 feature map 大小应该保持不变,所以layer1 经过 rate=1的conv 得到layer 2,然后再通过公式计算得到layer 3 feature map 经过conv的rate,rate = rate * stride (layer 1->layer2 )=1*2=2

源代码如下:

 # than the target output_stride.
 current_stride = 1

 # The atrous convolution rate parameter.
 rate = 1
'''省略部分代码'''
 if output_stride is not None and current_stride == output_stride:
            net = block.unit_fn(net, rate=rate, **dict(unit, stride=1))
            rate *= unit.get('stride', 1)

          else:
            net = block.unit_fn(net, rate=1, **unit)
            current_stride *= unit.get('stride', 1)

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值