I'm trying to better understand the architecture in this CNN. After reading the paper here: http://scs.ryerson.ca/~aharley/vis/ the author says

This network has 1024 nodes on the bottom layer (corresponding to pixels), six 5x5 (stride 1) convolutional filters in the first hidden layer, followed by sixteen 5x5 (stride 1) convolutional filters in the second hidden layer, then three fully-connected layers, with 120 nodes in the first, 100 nodes in the second, and 10 nodes in the third. The convolutional layers are each followed by downsampling layer that does 2x2 max pooling (with stride 2).

But I get lost when I start interacting with the network. The first step makes sense, 6 convolution filters pass over the input image and I get 6 results. Then there's pooling to reduce the image size- so we have 6 images each being 14x14 pinxels. Then we have 16 filters. It looks like some of then are connected to all 6 previous images while others are connected to only 3. Why is this the case? Is this a choice by the author to disconnect some filters? To achieve the "multiple images contributing to one node" are the convolution results just summed up?

After that, we have pooling and fully connected layers, which make sense to me just fine.

So yah, I'm wondering why a hidden convolution layer only takes in a few of the inputs from the previous layer.

  • $\begingroup$ Why do you believe that second layer only processes some of the previous layer? $\endgroup$ – jonnor Apr 3 '19 at 19:55
  • $\begingroup$ when I hover over a pixel in the second layer (the 16-filter layer), each pixel is shown to connect to it's input pixels. For some pixels there is a line to each of the 6 images in the previous layer, for others lines run only to a few images. $\endgroup$ – Mohammad Athar Apr 3 '19 at 19:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.