【问题标题】:Is the dimensions of layers rounded up or rounded down when it is not an integer?不是整数时,层的尺寸是向上取整还是向下取整?
【发布时间】:2017-02-13 12:14:54
【问题描述】:

有时可能会发生卷积层或池层的过滤器掩码不适合输入体积的情况。例如我有一个5x5 输入和一个2x2 过滤器掩码并且不使用任何填充,而stride 的d 值为2..

使用公式:

H = 1 + (W - F + 2*P) / S 

其中 W 是输入体积,F 是过滤器大小,P 是填充,S 是步幅 - 都是一维的。

1 + (5 - 2)/2 = 3/2 = 2,5 

使用的输出尺寸是多少?它会降到“2”还是上限到“3”?

【问题讨论】:

  • 你为什么不运行网络并简单地检查日志?你会在那里看到每个创建层的输出形状...
  • 对不起,我对这个话题没有经验——我以前不知道日志。我会检查它谢谢你
  • @Kev1n91 找到答案后,您可以(而且应该!)自己在此处发布答案。其他人也可能对此感兴趣。
  • 顺便说一句,过滤器的尺寸无关紧要。只有输入的维度和步幅很重要。
  • 你用来计算输出大小的公式是错误的。你最后没有考虑+1

标签: deep-learning caffe convolution dimensions


【解决方案1】:

考虑到 caffe 的实施,它将降至 2。 $CAFFE_ROOT/src/caffe/layers/conv_layer.cpp 的第 18 行

 const int output_dim = (input_dim + 2 * pad_data[i] - kernel_extent)
        / stride_data[i] + 1;

基本上,考虑一个大小为 SxS 的过滤器,它在输入上滑动。 当它在最后移动时,它可能不得不面对一个等于它的大小或小于它的大小的输入。 如果小于 S ,则忽略该部分。这就是 caffe 的实现方式。

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多