class_docstr: Wrapper for [PyTorch's `ReduceLROnPlateau`](https://pytorch.org/docs/stable/generated/
  torch.optim.lr_scheduler.ReduceLROnPlateau.html#torch.optim.lr_scheduler.ReduceLROnPlateau).
  
  Registered as a `LearningRateScheduler` with name "reduce_on_plateau".  The
  "optimizer" argument does not get an entry in a configuration file for the
  object.
  
   # Example
  
  Config for using the `ReduceOnPlateauLearningRateScheduler` Learning Rate
  Scheduler with the following `init` arguments:
  
  * `mode="max"`
  * `factor=0.2`
  * `patience=5`
  * `threshold=5e-3`
  * `threshold_mode="abs"`
  * `cooldown=2`
  * `min_lr=1e-12`
  * `eps=1e-10`
  
  ```json
  {
      ...
     "trainer":{
          ...
          "learning_rate_scheduler": {
              "type": "reduce_on_plateau",
              "mode": "max",
              "factor": 0.2,
              "patience": 5,
              "threshold": 5e-3,
              "threshold_mode": "abs",
              "cooldown": 2,
              "min_lr": 1e-12,
              "eps": 1e-10
          },
          ...
     }
  }
  ```
  Note that you do NOT pass a `optimizer` key to the Learning rate scheduler.
code: def __init__(
      self,
      optimizer: Optimizer,
      mode: str = "min",
      factor: float = 0.1,
      patience: int = 10,
      verbose: bool = False,
      threshold_mode: str = "rel",
      threshold: float = 1e-4,
      cooldown: int = 0,
      min_lr: Union[float, List[float]] = 0,
      eps: float = 1e-8,
  ) -> None:
      lr_scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(
          optimizer=optimizer,
          mode=mode,
          factor=factor,
          patience=patience,
          verbose=verbose,
          threshold_mode=threshold_mode,
          threshold=threshold,
          cooldown=cooldown,
          min_lr=min_lr,
          eps=eps,
      )
      super().__init__(lr_scheduler)
  
file_path: allennlp/allennlp/training/learning_rate_schedulers/pytorch_lr_schedulers.py
imports: from typing import List, Union
  import torch
  from allennlp.training.optimizers import Optimizer
  from allennlp.training.learning_rate_schedulers.learning_rate_scheduler import LearningRateScheduler, _PyTorchLearningRateSchedulerWrapper, _PyTorchLearningRateSchedulerWithMetricsWrapper
label_desc: Use image node_id 1 to create a new ReduceOnPlateauLearningRateScheduler object from inherited base classes: _PyTorchLearningRateSchedulerWithMetricsWrapper with example: obj = ReduceOnPlateauLearningRateScheduler(optimizer, mode, factor, patience, verbose, threshold_mode, threshold, cooldown, min_lr, eps)