title: how does fully connected layer called fc3 have 20x125 weights
body: <p>According to my calculations, the pooling output should 5x4x4 (5 feature maps of size 4x4) and so flattening it would yield a 1x80 vector. therefore the fc3 should have weights 20x80 but pycaffe shows the layer having 20x125 weights. here is the prototext file. here are my calculations</p>
  
  <p><br>the equation is use is (dimension_size - kernel)/stride + 1<br><br>
  conv1: 1x5x26x26<br>
  pool1: 1x5x12x12<br>
  conv2: 1x5x10x10<br>
  pool2: 1x5x4x4 <br></p>
  
  <pre><code>input: "data"
  input_shape {
    dim: 1
    dim: 1
    dim: 28
    dim: 28
  }
  layer {
    name: "conv1"
    type: "Convolution"
    bottom: "data"
    top: "conv1"
    param {
      lr_mult: 1.0
      decay_mult: 1.0
    }
    param {
      lr_mult: 2.0
      decay_mult: 0.0
    }
    convolution_param {
      num_output: 5
      kernel_size: 3
      stride: 1
      weight_filler {
        type: "gaussian"
        std: 0.01
      }
      bias_filler {
        type: "constant"
        value: 0.0
      }
    }
  }
  layer {
    name: "relu1"
    type: "ReLU"
    bottom: "conv1"
    top: "conv1"
  }
  layer {
    name: "pool1"
    type: "Pooling"
    bottom: "conv1"
    top: "pool1"
    pooling_param {
      pool: MAX
      kernel_size: 3
      stride: 2
    }
  }
  layer {
    name: "conv2"
    type: "Convolution"
    bottom: "pool1"
    top: "conv2"
    param {
      lr_mult: 1.0
      decay_mult: 1.0
    }
    param {
      lr_mult: 2.0
      decay_mult: 0.0
    }
    convolution_param {
      num_output: 5
      kernel_size: 3
      stride: 1
      weight_filler {
        type: "gaussian"
        std: 0.01
      }
      bias_filler {
        type: "constant"
        value: 0.1
      }
    }
  }
  layer {
    name: "relu2"
    type: "ReLU"
    bottom: "conv2"
    top: "conv2"
  }
  layer {
    name: "pool2"
    type: "Pooling"
    bottom: "conv2"
    top: "pool2"
    pooling_param {
      pool: MAX
      kernel_size: 3
      stride: 2
    }
  }
  layer {
    name: "fc3"
    type: "InnerProduct"
    bottom: "pool2"
    top: "fc3"
    param {
      lr_mult: 1.0
      decay_mult: 1.0
    }
    param {
      lr_mult: 2.0
      decay_mult: 0.0
    }
    inner_product_param {
      num_output: 20
      weight_filler {
        type: "gaussian"
        std: 0.005
      }
      bias_filler {
        type: "constant"
        value: 0.1
      }
    }
  }
  layer {
    name: "relu3"
    type: "ReLU"
    bottom: "fc3"
    top: "fc3"
  }
  layer {
    name: "drop3"
    type: "Dropout"
    bottom: "fc3"
    top: "fc3"
    dropout_param {
      dropout_ratio: 0.5
    }
  }
  layer {
    name: "fc4"
    type: "InnerProduct"
    bottom: "fc3"
    top: "fc4"
    param {
      lr_mult: 1.0
      decay_mult: 1.0
    }
    param {
      lr_mult: 2.0
      decay_mult: 0.0
    }
    inner_product_param {
      num_output: 10
      weight_filler {
        type: "gaussian"
        std: 0.01
      }
      bias_filler {
        type: "constant"
        value: 0.0
      }
    }
  }
  layer {
    name: "softmax"
    type: "Softmax"
    bottom: "fc4"
    top: "softmax"
  }
  </code></pre>