chainer.functions.im2col(x, ksize, stride=1, pad=0, cover_all=False, dilate=1)[source]

フィルタに基いて、イメージからパッチを抽出する。

 

この関数は画像のパッチを並べ替え、出力のチャンネルに設定します。

パッチは それぞれの空間軸から初期位置から -pad した  stride の倍数によってシフトされた位置で抽出されます。最も右の(もしくは最も下の)パッチはパッディングされた空間サイズを超えては処理しません。

 

表記法: これは表記法です。

  • nn は、バッチサイズ。
  • cc は入力チャンネル数。
  • hh と ww はそれぞれ入力画像の高さ(h)と幅(w)
  • kHkH はフィルタの高さ、 kWkW はフィルタの幅
  • sYsY と sXsX はフィルタのstride。
  • pHpH と pWpW は空間のパディングサイズ。
  • dYdY と dXdX はフィルタ適用の拡大要素ファクタ。

出力サイズ (hO,wO)(hO,wO) はcover_all = Falseの場合、下記の式で定義されます。

hOwO=(h+2pHkH(kH1)(dY1))/sY+1,=(w+2pWkW(kW1)(dX1))/sX+1.hO=(h+2pH−kH−(kH−1)∗(dY−1))/sY+1,wO=(w+2pW−kW−(kW−1)∗(dX−1))/sX+1.

cover_all = True,の場合、出力サイズは下記の式で定義されます。

hOwO=(h+2pHkH(kH1)(dY1)+sY1)/sY+1,=(w+2pWkW(kW1)(dX1)+sX1)/sX+1.hO=(h+2pH−kH−(kH−1)∗(dY−1)+sY−1)/sY+1,wO=(w+2pW−kW−(kW−1)∗(dX−1)+sX−1)/sX+1.
Parameters:
  • x (Variable) – shape (n,c,h,w)(n,c,h,w)である入力値。
  • ksize (int or pair of ints) – フィルターk(カーネル)のサイズ。
  •  ksize=k と ksize=(k, k) は同等。 
  • stride (int or pair of ints) – フィルター適用のstride。 stride=s と stride=(s, s) は同等。
  • pad (int or pair of ints) – 入力配列のための空間パディング幅。 pad=p と pad=(p, p) は同等。
  • cover_all (bool) –  Trueの場合、 全ての空間位置は幾つかの出力ピクセルへ再配置される。これは、出力画像サイズを大きくする可能性がある。
  • dilate (int or pair of ints) – フィルター適用の拡張要素。 dilate=ddilate=(d, d) は同等。
Returns:

出力値。shape が (n,ckHkW,hO,wO)(n,c⋅kH⋅kW,hO,wO)で

Return type:

Variable