如何计算接受域大小? [英] How to calculate receptive field size?
问题描述
我正在阅读关于使用CNN(卷积神经网络)进行对象检测的论文。
I'm reading paper about using CNN(Convolutional neural network) for object detection.
这里是关于接受字段的报价:
Here is a quote about receptive field:
The pool5 feature map is 6x6x256 = 9216 dimensional. Ignoring boundary effects, each pool5 unit has a receptive field of 195x195 pixels in the original 227x227 pixel input. A central pool5 unit has a nearly global view,
while one near the edge has a smaller, clipped support.
我的问题是:
- 接受字段的定义是什么?
- 如何计算接受字段的大小和位置?
- 我们如何计算边界rect使用caffe / pycaffe的接受场地?
推荐答案
1)影响输出的像素大小最后卷积。
1) It is the size of the area of pixels that impact the output of the last convolution.
2)对于每个卷积和池操作,计算输出的大小。现在找到导致输出大小为1x1的输入大小。接受字段的大小
2) For each convolution and pooling operation, compute the size of the output. Now find the input size that results in an output size of 1x1. Thats the size of the receptive field
3)你不需要使用库来做。对于每2×2池,输出大小沿每个维度减少一半。对于宽松卷积,您还可以将每个维度的大小除以步幅。你可能不得不削减一些维度,取决于你是否使用填充为你的卷积。最简单的情况是使用padding = floor(内核大小/ 2),以使卷积对输出大小没有任何额外的变化。
3) You don't need to use a library to do it. For every 2x2 pooling the output size is reduced by half along each dimension. For strided convolutions, you also divide the size of each dimension by the stride. You may have to shave off some of the dimension depending on if you use padding for your convolutions. The simplest case is to use padding = floor(kernel size/2), so that a convolution dose not have any extra change on the output size.
这篇关于如何计算接受域大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!