class_docstr: Reduce learning rate when a metric has stopped improving.
  
  Models often benefit from reducing the learning rate by a factor
  of 2-10 once learning stagnates. This callback monitors a
  quantity and if no improvement is seen for a 'patience' number
  of epochs, the learning rate is reduced.
  
  Example:
  
  ```python
  reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2,
                                patience=5, min_lr=0.001)
  model.fit(x_train, y_train, callbacks=[reduce_lr])
  ```
  
  Args:
      monitor: String. Quantity to be monitored.
      factor: Float. Factor by which the learning rate will be reduced.
          `new_lr = lr * factor`.
      patience: Integer. Number of epochs with no improvement after which
          learning rate will be reduced.
      verbose: Integer. 0: quiet, 1: update messages.
      mode: String. One of `{'auto', 'min', 'max'}`. In `'min'` mode,
          the learning rate will be reduced when the
          quantity monitored has stopped decreasing; in `'max'` mode it will
          be reduced when the quantity monitored has stopped increasing; in
          `'auto'` mode, the direction is automatically inferred from the name
          of the monitored quantity.
      min_delta: Float. Threshold for measuring the new optimum, to only focus
          on significant changes.
      cooldown: Integer. Number of epochs to wait before resuming normal
          operation after the learning rate has been reduced.
      min_lr: Float. Lower bound on the learning rate.
class_docstr_tok: ["Reduce","learning","rate","when","a","metric","has","stopped","improving",".","Models","often","benefit","from","reducing","the","learning","rate","by","a","factor","of","2-10","once","learning","stagnates",".","This","callback","monitors","a","quantity","and","if","no","improvement","is","seen","for","a","'patience","'","number","of","epochs",",","the","learning","rate","is","reduced",".","Example",":","``","`","python","reduce_lr","=","ReduceLROnPlateau","(","monitor='val_loss","'",",","factor=0.2",",","patience=5",",","min_lr=0.001",")","model.fit","(","x_train",",","y_train",",","callbacks=","[","reduce_lr","]",")","``","`","Args",":","monitor",":","String",".","Quantity","to","be","monitored",".","factor",":","Float",".","Factor","by","which","the","learning","rate","will","be","reduced",".","`","new_lr","=","lr","*","factor","`",".","patience",":","Integer",".","Number","of","epochs","with","no","improvement","after","which","learning","rate","will","be","reduced",".","verbose",":","Integer",".","0",":","quiet",",","1",":","update","messages",".","mode",":","String",".","One","of","`","{","'auto","'",",","'min","'",",","'max","'","}","`",".","In","`","'min","'","`","mode",",","the","learning","rate","will","be","reduced","when","the","quantity","monitored","has","stopped","decreasing",";","in","`","'max","'","`","mode","it","will","be","reduced","when","the","quantity","monitored","has","stopped","increasing",";","in","`","'auto","'","`","mode",",","the","direction","is","automatically","inferred","from","the","name","of","the","monitored","quantity",".","min_delta",":","Float",".","Threshold","for","measuring","the","new","optimum",",","to","only","focus","on","significant","changes",".","cooldown",":","Integer",".","Number","of","epochs","to","wait","before","resuming","normal","operation","after","the","learning","rate","has","been","reduced",".","min_lr",":","Float",".","Lower","bound","on","the","learning","rate","."]
code: def in_cooldown(self):
      return self.cooldown_counter > 0
  
file_path: keras/keras/callbacks/reduce_lr_on_plateau.py
imports: import warnings
  import numpy
  from keras import backend
  from keras.api_export import keras_export
  from keras.callbacks.callback import Callback
  from keras.utils import io_utils
label_desc: Use image node_id 5 for calling the ReduceLROnPlateau obj's underlying member method code with example usage: obj.in_cooldown() and returns: unknown