

caffeの`cifar10_quick_train_test`でプーリング層の出力が

[code]

    OH = (H-FH)/S + 1
    (32-3)/2 + 1
    29/2 + 1
    
[/code]

以上のような計算になり  
割り切れない数になると思うのですが、どのような処理が行われているのでしょうか？

<https://github.com/BVLC/caffe/blob/master/examples/cifar10/cifar10_quick_train_test.prototxt>

[code]

    layer {
      name: "conv1"
      type: "Convolution"
      bottom: "data"
      top: "conv1"
      param {
        lr_mult: 1
      }
      param {
        lr_mult: 2
      }
      convolution_param {
        num_output: 32
        pad: 2
        kernel_size: 5
        stride: 1
        weight_filler {
          type: "gaussian"
          std: 0.0001
        }
        bias_filler {
          type: "constant"
        }
      }
    }
    layer {
      name: "pool1"
      type: "Pooling"
      bottom: "conv1"
      top: "pool1"
      pooling_param {
        pool: MAX
        kernel_size: 3
        stride: 2
      }
    }
    
[/code]


CC BY-SA 4.0
2019-06-20T15:51:57.297
55947
2019-06-21T23:03:10.543
2019-06-20T16:18:33.180
23994
34631
question
python 機械学習 深層学習 caffe
cifar10_quick_train_testのプーリング層の出力が整数ではない


割り切れない場合の対応は、ディープラーニングのフレームワーク（ソフトウェア）によって異なり、エラーを出力するものや最も近い整数に丸めるものがあります。

<https://github.com/BVLC/caffe/blob/128797ebe100dd87f375d2d30b0f649914d0fcc3/src/caffe/layers/pooling_layer.cpp#L91>

このあたりを見ると、caffeはパラメーターで動作モードを変えられるようにしていますね。


CC BY-SA 4.0
2019-06-21T00:00:06.610
55950
2019-06-21T23:03:10.543
2019-06-21T23:03:10.543
21092
21092
55947
answer