chainer.functions.spatial_pyramid_pooling_2d(x, pyramid_height, pooling_class)[source]

空間的なピラミッド・プーリング関数。

 

この関数は入力された特徴マップのサイズにかかわらず、決められた長さのベクトルを出力します。

まず、入力した4次元配列x を、異なるカーネルサイズ、パディングサイズでプーリング処理を行ってから、全てのプーリング結果の最初の次元を除いた全ての次元を1次元化し、それを最終的に2次元目に結合します。

 

ii番目のピラミッドレベルで、プーリング処理のカーネルサイズ (k(i)h,k(i)w)(kh(i),kw(i)) と パディングサイズ (p(i)h,p(i)w)(ph(i),pw(i)) は下記のように計算されます:

k(i)hk(i)wp(i)hp(i)w=bh/2i,=bw/2i,=(2ik(i)hbh)/2,=(2ik(i)wbw)/2,kh(i)=⌈bh/2i⌉,kw(i)=⌈bw/2i⌉,ph(i)=(2ikh(i)−bh)/2,pw(i)=(2ikw(i)−bw)/2,

ここで、 ⌈⋅⌉ はシーリング関数を表し、bh,bwbh,bw はそれぞれ入力  xの高さと幅を表します。

ピラミッドレベル iiのインデックス は0から始まることに注意してください。

 

詳細はこちらの論文をお読みください。: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition.

 

Parameters:
  • x (Variable) –入力値。 x のshapeは(batchsize, # of channels, height, width)となる。
  • pyramid_height (int) – ピラミッドレベル数。
  • pooling_class (MaxPooling2D or AveragePooling2D) – 現時点ではMaxPooling2D クラスだけが使用可能。
Returns:

出力値。 shapeは(batchsize,cH1h=022h,1,1)(batchsize,c∑h=0H−122h,1,1)となり、ただしcc は入力  x のチャネル数、 HH はピラミッドレベル数。

Return type:

Variable

Note

この関数はいくつかのプーリングクラスを空間的なピラミッドプーリング処理のコンポーネントとして用います。現時点では、 MaxPooling2D のみを、プーリング操作のエレメントとしています。