卷积感受野计算

感受野(receptive field)

CNN中,某一层输出结果中一个元素所对应的输入层的区域大小.

感受野计算

output field size = ( input field size – kernel size + 2 × padding ) / stride + 1,变形之后得到input field size = (output field size – 1)× stride – 2 × padding + kernel size。因此可以通过后式从最后一层到第一次级联后计算在原图上的感受野。计算感受野时不需要考虑padding(因为我们不是在计算具体有边界的映射区域,而是计算抽象的大小):

RF = 1 #待计算的feature map上的感受野大小
for layer in (top layer To down layer):
  RF = ((RF -1)* stride) + kernel size

[l_k = l_{k-1} + ((f_k – 1) * \prod_{i=1}^{k-1}s_i) ]

(l_k) 是第k层的每个点的感受野, (f_k)是第k层卷积核的大小(宽或高, 并假设宽高相等), (s_i)是第i层卷积的stride, 在第k层的感受野比第k-1层的感受野大 ((f_k−1)\times S_{k−1}=(f_k – 1) \times \prod_{i=1}^{k-1}s_i).

让我们考虑计算有孔卷积的感受场的理论值(拨出的圆锥)(实际上,孔也包括在感受区中,如果计算无孔位置的面积,则相当于无孔的感受场的值)。

[En]

Let’s consider calculating the theoretical value of receptive field of convolution with holes (dialated conv) (in fact, holes are also included in the receptive region, and if the area of non-hole position is calculated, it is equivalent to the value of receptive field without holes).

卷积核的 dialate属性定义为卷积核的元素间距,如 dialate=2 是每隔一个像素位置应用一个卷积元素,dialate=1就是普通的无孔卷积。那么大小(f_k),dialate=d的卷积核的等价卷积作用大小为:(f_k’=(f_k-1)d+1).

然后用(f_k’)代替(f_k),采用上述的两种计算方式计算感受野.

示例:

[En]

Example:

如果有三层CNN,分别为con3x3, dilation=1, conv3x3, dialation=2, conv3x3, dilation=5,它们的stried=1,则最后一层每个神经元的感受野为17×17.

Original: https://www.cnblogs.com/makefile/p/receptive-field.html
Author: 康行天下
Title: 卷积感受野计算

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6525/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部