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 _get_concrete_noise_shape(self, inputs, noise_shape):
      if noise_shape is None:
          return inputs.shape
  
      concrete_inputs_shape = inputs.shape
      concrete_noise_shape = []
      for i, value in enumerate(noise_shape):
          concrete_noise_shape.append(
              concrete_inputs_shape[i] if value is None else value
          )
      return concrete_noise_shape
  
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 4 for calling the AlphaDropout obj's underlying member method code with example usage: obj._get_concrete_noise_shape(inputs, noise_shape) and returns: concrete_noise_shape, inputs