class_docstr: Applies Dropout to the input.
  
  Dropout consists in randomly setting
  a fraction `rate` of input units to 0 at each update during training time,
  which helps prevent overfitting.
  
  Arguments:
  rate: Float between 0 and 1. Fraction of the input units to drop.
  noise_shape: 1D integer tensor representing the shape of the
    binary dropout mask that will be multiplied with the input.
    For instance, if your inputs have shape
    `(batch_size, timesteps, features)` and
    you want the 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 dropout) or in inference mode (doing nothing).
code: def get_config(self):
      config = {
          "rate": self.rate,
          "noise_shape": self.noise_shape,
          "seed": self.seed,
      }
      base_config = super().get_config()
      return dict(list(base_config.items()) + list(config.items()))
  
imports: import numpy
  import tensorflow
  from tensorflow.keras import activations
  from tensorflow.keras import backend
  from tensorflow.keras import constraints, initializers, regularizers
  from tensorflow.keras.layers import Layer
  from tensorflow.python.framework import smart_cond
  from spektral.layers import ops
label_desc: Use image node_id 4 for calling the SparseDropout obj's underlying member method code with example usage: obj.get_config() and returns: dict