Dropout

paddle.nn. Dropout ( p=0.5, axis=None, mode=”upscale_in_train”, name=None ) [源代码]

Dropout是一种正则化手段,该算子根据给定的丢弃概率 p ,在训练过程中随机将一些神经元输出设置为0,通过阻止神经元节点间的相关性来减少过拟合。论文请参考: Improving neural networks by preventing co-adaptation of feature detectors

在动态图模式下,请使用模型的 eval() 方法切换至测试阶段。

注解

对应的 functional方法 请参考: dropout

参数

  • p (float): 将输入节点置为0的概率, 即丢弃概率。默认: 0.5。

  • axis (int|list): 指定对输入 Tensor 进行Dropout操作的轴。默认: None。

  • mode (str): 丢弃单元的方式,有两种’upscale_in_train’和’downscale_in_infer’,默认: ‘upscale_in_train’。计算方法如下:

    1. upscale_in_train, 在训练时增大输出结果。

      • train: out = input * mask / ( 1.0 - p )

      • inference: out = input

    2. downscale_in_infer, 在预测时减小输出结果

      • train: out = input * mask

      • inference: out = input * (1.0 - p)

  • name (str,可选): 操作的名称(可选,默认值为None)。更多信息请参见 Name

形状

  • 输入 : N-D Tensor 。

  • 输出 : N-D Tensor ,形状与输入相同。

代码示例

  1. import paddle
  2. import numpy as np
  3. x = np.array([[1,2,3], [4,5,6]]).astype('float32')
  4. x = paddle.to_tensor(x)
  5. m = paddle.nn.Dropout(p=0.5)
  6. y_train = m(x)
  7. m.eval() # switch the model to test phase
  8. y_test = m(x)
  9. print(x)
  10. print(y_train)
  11. print(y_test)

使用本API的教程文档