pytorch dilated convolution的感受野,特征图尺度及padding计算

Dilated convolution

dilated convolution即空洞卷积,它的出现有效的解决了feature map感受野单一的情况。利用空洞增加感受野,并不增加额外的params和flops,使得同样size的kernel拥有不同的感受野。但同时由于空洞的存在会对原有信息造成遗漏,无法全覆盖的生成令人满意的feature。

1.空洞卷积感受野的计算

感受野尺寸=2(rate-1)*(k-1)+k  #k是kernel size 

举个例子,3×3的kernel,rate=1是普通卷积–>感受野=3;rate=2,感受野=7;rate=4,感受野=15。

2.带有空洞卷积的feature size的计算

Output=(W-F+2P)/S+1  #w是上层feature的size,F是kernel size,S是stride

这里普通卷积跟空洞卷积的feature size计算公式都是一样,计算时只需要把空洞卷积的F替换成其感受野(即换成普通卷积的kernel size)。
在pytorch中,缺少padding=‘SAME’,需要自己手动计算padding,这是用上面的公式反推就可以计算出padding了

你可能感兴趣的:(pytorch,深度学习,卷积,人工智能,卷积神经网络,计算机视觉)