class_docstr: Object that holds dropout-related functionality for RNN cells.
  
  This class is not a standalone RNN cell. It suppose to be used with a RNN
  cell by multiple inheritance. Any cell that mix with class should have
  following fields:
  
  - `dropout`: a float number in the range `[0, 1]`.
      Dropout rate for the input tensor.
  - `recurrent_dropout`: a float number in the range `[0, 1]`.
      Dropout rate for the recurrent connections.
  - `seed_generator`, an instance of `backend.random.SeedGenerator`.
  
  This object will create and cache dropout masks, and reuse them for
  all incoming steps, so that the same mask is used for every step.
code: def get_recurrent_dropout_mask(self, step_input):
      if not hasattr(self, "_recurrent_dropout_mask"):
          self._recurrent_dropout_mask = None
      if (
          self._recurrent_dropout_mask is None
          and self.recurrent_dropout > 0
      ):
          ones = ops.ones_like(step_input)
          self._recurrent_dropout_mask = backend.random.dropout(
              ones, rate=self.dropout, seed=self.seed_generator
          )
      return self._recurrent_dropout_mask
  
imports: from keras import backend
  from keras import ops
label_desc: Use image node_id 2 for calling the DropoutRNNCell obj's underlying member method code with example usage: obj.get_recurrent_dropout_mask(step_input) and returns: self