感受野是什么?知乎有一篇写的不错,供参考:
如何计算感受野(Receptive Field)——原理 - 知乎
但作者用MATLAB代码实现的,我用Python实现另一个感受野的计算公式:
举个例子:
第一层:卷积核尺寸3,步长2
第二层:卷积核尺寸1,步长2
那么,最终那个2×2的特征图中,绿色框框那个像素对应最左边图片的感受野为蓝框框3
代码:
s_0 = 1
kernal_size = [3,1] # 自己输入每一层的卷积核大小
stride = [1,2,2] # 第一个数字固定为1,真正的s从第二个数字开始(自己输入每一层的步长)
RF = 1
def times(s):
c = 1
for i in s:
c *= i
return c
for i in range(len(kernal_size)):
RF += (kernal_size[i]-1)*times(stride[:i+1])
print(RF)
输出:3
注:感受野RF=3,指的是感受野的大小是3×3