chainer.functions.dropout(x, ratio=.5)[source]

入力値のエレメントをランダムにドロップする。

 

この関数は確率比を使ランダムに入力値をドロップし、 1 / (1 - ratio)で、残ったエレメントをスケールします。テストモードでは、何も処理せずそのまま xを返します。

Warning

train 引数は v2以降サポートされていません。替わりにchainer.using_config('train', boolean)をお使いください。 chainer.using_config()もお読みください。

Parameters:
  • x (Variable or numpy.ndarray or cupy.ndarray) – 入力値。shapeが(s1,s2,...,sN)(s1,s2,...,sN) の float 配列。
  • ratio (float) – ドロップアウト比。 このratio は0.0 <= ratio < 1.0でなければならない。
Returns:

出力値

Return type:

Variable

G. Hintonの論文もお読みください: Improving neural networks by preventing co-adaptation of feature detectors.

 

Example

 

>>> x = np.array([[-1, 0], [2, -3], [-2, 1]], 'f')

>>> with chainer.using_config('train', True):
... y = F.dropout(x)
>>> y.data
   array([[-2., 0.], [ 4., -6.], [-0., 2.]], dtype=float32)
>>> with chainer.using_config('train', True):
... y = F.dropout(x, ratio=0.0) # dropout returns original input if ratio=0.0
>>> (x == y.data).all()
True
>>> with chainer.using_config('train', False):
... y = F.dropout(x) # dropout in test mode returns original input
>>> (x == y.data).all()
True