膨胀卷积(空洞卷积、Dilation Convolution/Atrous Convolution)的本质是为了
1.避免下采样而减少feature map的信息
2.感受野又不变

如图,(c)为膨胀卷积,考虑亮黄色的神经元,视野为1-5,在(b)的情况中,需要再加一层,才有一个神经元的视野有1-5的情况,但这样参数就变成了好几倍了。
caffe中的膨胀系数dilation可以理解为对 原始卷积尺寸-1 的倍数,以此求出膨胀后的卷积核尺寸
kernel_size_after_dilate - 1 = dilate * (kernel_size_before_dilate - 1)
可以认为原始卷积核每个数中间加了dilate - 1个0,变成了kernel_size_after_dilate的正常卷积操作
(caffe中为dilation,tensorflow中对应为rate参数)
此时的(SAME)pad大小为
pad = int((kernel_size + (dilation - 1) * (kernel_size - 1)) - 1) / 2
|