AlphaDropout¶
AlphaDropout 是一种具有自归一化性质的 dropout。均值为 0,方差为 1 的输入,经过 AlphaDropout 计算之后,输出的均值和方差与输入保持一致。AlphaDropout 通常与 SELU 激活函数组合使用。论文请参考:Self-Normalizing Neural Networks
在动态图模式下,请使用模型的 eval() 方法切换至测试阶段。
注解
对应的 functional 方法 请参考:alpha_dropout 。
返回¶
经过 AlphaDropout 之后的结果,与输入 x 形状相同的 Tensor 。
代码示例¶
import paddle
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(gpu:0), stop_gradient=True,
# [[-0.77919382, 1.66559887],
# [-0.77919382, -0.77919382]])
m.eval() # switch the model to test phase
y_test = m(x)
print(y_test)
# Tensor(shape=[2, 2], dtype=float32, place=Place(gpu:0), stop_gradient=True,
# [[-1., 1.],
# [-1., 1.]])