AlphaDropout

paddle.nn. AlphaDropout ( p=0.5, name=None ) [源代码]

AlphaDropout 是一种具有自归一化性质的 dropout。均值为 0,方差为 1 的输入,经过 AlphaDropout 计算之后,输出的均值和方差与输入保持一致。AlphaDropout 通常与 SELU 激活函数组合使用。论文请参考:Self-Normalizing Neural Networks

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

注解

对应的 functional 方法 请参考:alpha_dropout

参数

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

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

经过 AlphaDropout 之后的结果,与输入 x 形状相同的 Tensor

代码示例

>>> import paddle
>>> paddle.seed(2023)

>>> x = paddle.to_tensor([[-1, 1], [-1, 1]], dtype="float32")
>>> m = paddle.nn.AlphaDropout(p=0.5)
>>> y_train = m(x)
>>> print(y_train)
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[-0.10721093,  1.66559887],
 [-0.77919382,  1.66559887]])

>>> m.eval()  # switch the model to test phase
>>> y_test = m(x)
>>> print(y_test)
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[-1.,  1.],
 [-1.,  1.]])