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

本文详细介绍了如何通过带孔卷积保持特征图尺寸不变的同时维持感受野大小不变的技术原理。文中通过一个三层网络的例子解释了如何计算带孔卷积的rate参数,确保网络的输出步长符合设定的目标输出步长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里我们都知道感受野的含义,同时也知道带孔卷积是为了在不缩小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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值