感受野(receptive field)是怎样一个东西呢,从CNN可视化的角度来讲,就是输出featuremap某个节点的响应对应的输入图像的区域就是感受野。
比如我们第一层是一个3*3的卷积核,那么我们经过这个卷积核得到的featuremap中的每个节点都源自这个3*3的卷积核与原图像中3*3的区域做卷积,那么我们就称这个featuremap的节点感受野大小为3*3
如果再经过pooling层,假定卷积层的stride是1,pooling层大小2*2,stride是2,那么pooling层节点的感受野就是5*5
有几点需要注意的是,padding并不影响感受野,stride只影响下一层featuremap的感受野,size影响的是该层的感受野。
至于如何计算感受野,我的建议是top to down的方式。下面我拿一个例子来算算
pool3的一个输出对应pool3的输入大小为2*2
依次类推,对应conv4的输入为5*5,因为2*2的每个角加一个3*3的卷积核,就成了5*5,当然这是在stride=1的情况下才成立的,但是一般都是stride=1,不然也不合理
对应conv3的输入为7*7
对应pool2的输入为14*14
对应conv2的输入为16*16
对应pool1的输入为32*32
对应conv1的输入为34*34
所以pool3的感受野大小就是34*34
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-14 06:40:41