caffe中的misshaped blob

时间:2016-07-28 02:36:16

标签: python deep-learning caffe

我使用以下原型文字:

layer {
  name: "pool2"
  type: "Pooling"
  bottom: "conv5"
  top: "pool2"
  pooling_param {
    pool: MAX
    kernel_w: 2
    kernel_h: 1
    stride_w: 2
    stride_h: 1
    pad_h: 0
    pad_w: 0
  }
}

前面的blob形状是1x64x1x30,之后是1x64x1x15。不应该是1x64x1x14吗?

来自caffe doc:

w_o = (w_i + 2*pad_w - kernel_w)/stride_w = (30 - 2)/2 = 14.

这是有道理的,因为池将是:[0,1] [2,3] [4,5] ...... [28,29]这是14个元素。

1 个答案:

答案 0 :(得分:0)

通常,最大池层接受大小为W1 x H1 x D1的输入卷,并且需要两个超参数 - 步幅(S)和内核大小(K)。它产生大小为W2×H2×D2的输出体积,其中我们有W2 =(W1-K)/ S + 1,H2 =(H1-K)/ S + 1,D2 = D1。简单计算得出内核大小为2且步幅为2的输入减半,验证了caffe的网络输出形状。