class_docstr: Applies Alpha Dropout to the input.
  
  Alpha Dropout is a `Dropout` that keeps mean and variance of inputs
  to their original values, in order to ensure the self-normalizing property
  even after this dropout.
  Alpha Dropout fits well to Scaled Exponential Linear Units (SELU) by
  randomly setting activations to the negative saturation value.
  
  Args:
      rate: Float between 0 and 1. The multiplicative noise will have
          standard deviation `sqrt(rate / (1 - rate))`.
      noise_shape: 1D integer tensor representing the shape of the
          binary alpha dropout mask that will be multiplied with the input.
          For instance, if your inputs have shape
          `(batch_size, timesteps, features)` and
          you want the alpha dropout mask to be the same for all timesteps,
          you can use `noise_shape=(batch_size, 1, features)`.
      seed: A Python integer to use as random seed.
  
  Call arguments:
      inputs: Input tensor (of any rank).
      training: Python boolean indicating whether the layer should behave in
          training mode (adding alpha dropout) or in inference mode
          (doing nothing).
code: def call(self, inputs, training=False):
      if training and self.rate > 0:
          noise_shape = self._get_concrete_noise_shape(
              inputs, self.noise_shape
          )
          alpha = 1.6732632423543772848170429916717
          scale = 1.0507009873554804934193349852946
          alpha_p = -alpha * scale
  
          kept_idx = ops.greater_equal(
              ops.random.uniform(noise_shape, seed=self.seed_generator),
              self.rate,
          )
          kept_idx = ops.cast(kept_idx, inputs.dtype)
  
          # Compute affine transformation parameters
          a = ((1 - self.rate) * (1 + self.rate * alpha_p**2)) ** -0.5
          b = -a * alpha_p * self.rate
  
          # Apply mask
          x = inputs * kept_idx + alpha_p * (1 - kept_idx)
          return a * x + b
  
      return inputs
  
file_path: keras/keras/layers/regularization/alpha_dropout.py
imports: from keras import backend
  from keras import ops
  from keras.api_export import keras_export
  from keras.layers.layer import Layer
label_desc: Use image node_id 2 for calling the AlphaDropout obj's underlying member method code with example usage: obj.call(inputs, training) and returns: inputs, unknown