class_docstr: Reduce the learning rate if the train or validation loss plateaus
  
  :param monitor: (string in {'loss', 'val_loss'}):
      which metric to monitor
  :param factor: (float):
      factor to decrease learning rate by
  :param patience: (int):
      number of epochs to wait for loss improvement before reducing lr
  :param epsilon: (float):
      how much improvement must be made to reset patience
  :param cooldown: (int):
      number of epochs to cooldown after a lr reduction
  :param min_lr: (float):
      minimum value to ever let the learning rate decrease to
  :param verbose: (int):
      whether to print reduction to console
code: def __init__(
      self,
      monitor="val_loss",
      factor=0.1,
      patience=10,
      epsilon=0,
      cooldown=0,
      min_lr=0,
      verbose=0,
  ):
      self.monitor = monitor
      if factor >= 1.0:
          raise ValueError(
              "ReduceLROnPlateau does not support a factor >= 1.0."
          )
      self.factor = factor
      self.min_lr = min_lr
      self.epsilon = epsilon
      self.patience = patience
      self.verbose = verbose
      self.cooldown = cooldown
      self.cooldown_counter = 0
      self.wait = 0
      self.best_loss = 1e15
      self._reset()
      super(ReduceLROnPlateau, self).__init__()
  
imports: from .None import Callback
label_desc: Use image node_id 1 to create a new ReduceLROnPlateau object from inherited base classes: Callback with example: obj = ReduceLROnPlateau(monitor, factor, patience, epsilon, cooldown, min_lr, verbose)