I'm implementing YOLO network and have some questions. In the original paper the authors say: "For pretraining we use the first 20 convolutional layers from Figure 3 followed by a average-pooling layer and a fully connected layer". And also they report that they use ImageNet 1000 classes dataset and 224x224 input size instead of 448x448 Figure 3

My questions are the following:

1) What is the size of average-pooling layer kernel? 2x2?

2) How do authors reduce the input size to 224x224? Do they omit the 1st layer?


1 Answer 1


1) The goal of using Average pooling layer (at least here), is to have a vector after it. That way you have a fully connected layer vector.

In Yolo, the layer previous the fully connected one seems to be 7x7x1024. The next layer, the fully connected one, is 4096 (or 1x1x4096). That means you need an average pooling layer with a kernel of 7x7, and 4096 filters (7x7x4096).

Maybe look this explanation of Global Average Pooling by Alexis Cook.

2) I don't really understand your second question, so feel free to comment if I am answering wrongly :
The dimension of 224x224 is for the pretraining of the network. First, they trained their network for image classification, with imagenet, like network as VGG, Inception or densenet. When the training is done, they add a new layer, at the begining, with an input size of 448x448. They trained the network again with this new layer for image recognition.

  • $\begingroup$ How can a pooling layer have filters ? $\endgroup$
    – monolith
    Feb 9, 2021 at 18:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.