class_docstr: Example: ::
  
      >>> from torchbearer import Trial
      >>> from torchbearer.callbacks import ReduceLROnPlateau
  
      >>> # Example scheduler which divides the learning rate by 10 on plateaus of 5 epochs without significant
      >>> # validation loss decrease, in order to stop overshooting the local minima. new_lr = lr * factor
      >>> scheduler = ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=5)
      >>> trial = Trial(None, callbacks=[scheduler], metrics=['loss'], verbose=2).for_steps(10).for_val_steps(10).run(1)
  
  Args:
      monitor (str): The name of the quantity in metrics to monitor. (Default value = 'val_loss')
      step_on_batch (bool): If True, step will be called on each training iteration rather than on each epoch
  
  See:
      `PyTorch ReduceLROnPlateau <http://pytorch.org/docs/master/optim.html#torch.optim.lr_scheduler.ReduceLROnPlateau>`_
class_docstr_tok: ["Example",":",":",":",">",">",">","from","torchbearer","import","Trial",">",">",">","from","torchbearer.callbacks","import","ReduceLROnPlateau",">",">",">","#","Example","scheduler","which","divides","the","learning","rate","by","10","on","plateaus","of","5","epochs","without","significant",">",">",">","#","validation","loss","decrease",",","in","order","to","stop","overshooting","the","local","minima",".","new_lr","=","lr","*","factor",">",">",">","scheduler","=","ReduceLROnPlateau","(","monitor='val_loss","'",",","factor=0.1",",","patience=5",")",">",">",">","trial","=","Trial","(","None",",","callbacks=","[","scheduler","]",",","metrics=","[","'loss","'","]",",","verbose=2",")",".for_steps","(","10",")",".for_val_steps","(","10",")",".run","(","1",")","Args",":","monitor","(","str",")",":","The","name","of","the","quantity","in","metrics","to","monitor",".","(","Default","value","=","'val_loss","'",")","step_on_batch","(","bool",")",":","If","True",",","step","will","be","called","on","each","training","iteration","rather","than","on","each","epoch","See",":","`","PyTorch","ReduceLROnPlateau","<","http",":","\/\/pytorch.org\/docs\/master\/optim.html","#","torch.optim.lr_scheduler.ReduceLROnPlateau",">","`","_"]
code: def __init__(
      self,
      monitor="val_loss",
      mode="min",
      factor=0.1,
      patience=10,
      verbose=False,
      threshold=1e-4,
      threshold_mode="rel",
      cooldown=0,
      min_lr=0,
      eps=1e-8,
      step_on_batch=False,
  ):
      super(ReduceLROnPlateau, self).__init__(
          functools.partial(
              torch.optim.lr_scheduler.ReduceLROnPlateau,
              mode=mode,
              factor=factor,
              patience=patience,
              verbose=verbose,
              threshold=threshold,
              threshold_mode=threshold_mode,
              cooldown=cooldown,
              min_lr=min_lr,
              eps=eps,
          ),
          monitor=monitor,
          step_on_batch=step_on_batch,
      )
  
imports: import functools
  import warnings
  import torch
  import torchbearer
  from torchbearer.bases import get_metric, _pytorch_version_lt, _pytorch_version_gt
  from torchbearer.callbacks import Callback
label_desc: Use image node_id 1 to create a new ReduceLROnPlateau object from inherited base classes: TorchScheduler with example: obj = ReduceLROnPlateau(monitor, mode, factor, patience, verbose, threshold, threshold_mode, cooldown, min_lr, eps, step_on_batch)