chainer.functions.
depthwise_convolution_2d
(x, W, b=None,
stride=1, pad=0)[source]¶
2次元の深さごとの畳込み関数。
これは2次元の深さごとの畳込みの実装です。この関数は2つもしくは3つの変数をとります。すなわち、入力画像 x
フィルター荷重 W
、 そしてバイアスベクター b
.の設定はオプションです。
表記法: 次元の表記法です。
Parameters: |
|
---|---|
Returns: |
出力値。shape が \((n, c_I * c_M, h_O, w_O)\)となる。 |
Return type: |
Convolution2D
と同様に DepthwiseConvolution2D
はx
における、サイズ \((k_H, k_W)\) のフィルタとパッチの間の相関関係演算します。しかし、Convolution2D
とは異なり、DepthwiseConvolution2D
はフィルターの入力チャンネルを加算せず、結合します。このため、深さごとの畳込みの出力の shape \((n, c_I * c_M, h_O, w_O)\)となり、 \(c_M\) はチャンネル乗数と呼ばれます。
\((h_O, w_O)\) は Convolution2D
と等しい式によって決定されます。
バイアスベクトルが与えられている場合、全ての畳み込みの出力の空間的位置に加算されます。
L. Sifre. Rigid-motion scattering for image classificationもお読みください。
Example
>>> x = np.random.uniform(0, 1, (2, 3, 4, 7))
>>> W = np.random.uniform(0, 1, (2, 3, 3, 3))
>>> b = np.random.uniform(0, 1, (6,))
>>> y = F.depthwise_convolution_2d(x, W, b)
>>> y.shape
(2, 6, 2, 5)