class_docstr: Applies Alpha Dropout over the input.
  
  Alpha Dropout is a type of Dropout that maintains the self-normalizing
  property.
  For an input with zero mean and unit standard deviation, the output of
  Alpha Dropout maintains the original mean and standard deviation of the
  input.
  Alpha Dropout goes hand-in-hand with SELU activation function, which ensures
  that the outputs have zero mean and unit standard deviation.
  
  During training, it randomly masks some of the elements of the input
  tensor with probability *p* using samples from a bernoulli distribution.
  The elements to masked are randomized on every forward call, and scaled
  and shifted to maintain zero mean and unit standard deviation.
  
  During evaluation the module simply computes an identity function.
  
  More details can be found in the paper `Self-Normalizing Neural Networks`_ .
  
  Args:
      p (float): probability of an element to be dropped. Default: 0.5
      inplace (bool, optional): If set to ``True``, will do this operation
          in-place
  
  Shape:
      - Input: :math:`(*)`. Input can be of any shape
      - Output: :math:`(*)`. Output is of the same shape as input
  
  Examples::
  
      >>> m = nn.AlphaDropout(p=0.2)
      >>> input = torch.randn(20, 16)
      >>> output = m(input)
  
  .. _Self-Normalizing Neural Networks: https://arxiv.org/abs/1706.02515
code: def forward(self, input: Tensor) -> Tensor:
      return F.alpha_dropout(input, self.p, self.training)
  
imports: from .module import Module
  from ..None import functional
  from torch import Tensor
label_desc: Use image node_id 1 for calling the AlphaDropout obj's underlying member method code with example usage: obj.forward(input) and returns: F