FusedDropoutAdd

class paddle.incubate.nn. FusedDropoutAdd ( p=0.5, mode='upscale_in_train', name=None ) [源代码]

实现了 Dropout 和 Add 的融合

参数

  • p (float|int, 可选): 将单位设置为零的概率。默认值: 0.5

  • mode (str, 可选): ['upscale_in_train'(默认) | 'downscale_in_infer']

    1. upscale_in_train (默认), 在训练时放大输出

      • train: \(out = x \times \frac{mask}{(1.0 - p)} + y\)

      • inference: \(out = x + y\)

    2. downscale_in_infer, 在推理时缩小输出

      • train: \(out = x \times mask + y\)

      • inference: \(out = x \times (1.0 - p) + y\)

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

形状

  • x: N-D 张量.

  • y: N-D 张量.

  • output: N-D 张量, 和 x 形状相同.

代码示例

>>> import paddle
>>> paddle.device.set_device('gpu')
>>> from paddle.incubate.nn.layer.fused_dropout_add import FusedDropoutAdd

>>> x = paddle.to_tensor([[1,2,3], [4,5,6]], dtype="float32")
>>> y = paddle.to_tensor([[1,2,3], [4,5,6]], dtype="float32")

>>> m = FusedDropoutAdd(p=0.5)

>>> out = m(x, y)