code: def alpha_dropout(input, p=0.5, training=False, inplace=False):
      if (
          p == 0.0
          or not training
          or input.shape == ()
          or input.shape == (0,)
      ):
          return input
      neg_saturation = ivy.log1p(ivy.exp(-ivy.square(input)))
      mask = ivy.where(
          ivy.random_uniform(shape=input.shape, device=ivy.dev(input))
          < p,
          0.0,
          1.0,
      )
      if inplace:
          ivy.inplace_update(
              input, mask * input + (1 - mask) * neg_saturation
          )
          ivy.inplace_update(
              input, input / ivy.sqrt(1 - p / (1 - p + 1e-5))
          )
          return input
      else:
          masked = mask * input + (1 - mask) * neg_saturation
          return masked / ivy.sqrt(1 - p / (1 - p + 1e-5))
  
file_path: ivy/ivy/functional/frontends/torch/nn/functional/dropout_functions.py
imports: import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from ivy.functional.frontends.torch.func_wrapper import to_ivy_arrays_and_back
label_desc: Use image node_id 1 for calling a global function with example usage: alpha_dropout(input, p, training, inplace) and returns: input, input, unknown