class_docstr: Implements early stopping with adaptive patience
  
  Patience is adaptively adjusted across training instead of being a fixed value.
  This generally outperforms fixed patience strategies. Examples below:
  1. If the current best_round is 10000, it is reasonable to assume that it could take more than 100 rounds before finding a new best.
  2. If the current best_round is 3, it is unlikely that there will be 100 rounds before finding a new best at round 103.
  In the above examples, a fixed patience of 100 would be too little for round 10000, but too large for round 3.
  However, with `adaptive_rate=0.2`, `adaptive_offset=10`, round 3 would have a patience of ~10, while round 10000 would have a patience of ~2000.
  
  Parameters
  ----------
  adaptive_rate : float, default 0.3
      The rate of increase in patience.
      Set to 0 to disable, or negative to shrink patience during training.
  adaptive_offset : int, default 10
      The initial patience when cur_round is 0.
  min_patience : int, default 10
      The minimum value of patience.
  max_patience : int, default 10000
      The maximum value of patience.
  
  Attributes
  ----------
  best_round : int
      The most recent round passed to self.update with `is_best=True`.
      Dictates patience and is used to determine if self.early_stop() returns True.
  patience : int
      If no improvement occurs in `patience` rounds or greater, self.early_stop will return True.
      patience is dictated by the following formula:
      patience = min(self.max_patience, (max(self.min_patience, round(self.best_round * self.adaptive_rate + self.adaptive_offset))))
      Effectively, patience = self.best_round * self.adaptive_rate + self.adaptive_offset, bound by min_patience and max_patience
docstr: Returns True if (cur_round - self.best_round) equals or exceeds self.patience, otherwise returns False.
  This can be used to indicate if training should stop.
docstr_tok: ["Returns","True","if","(","cur_round","-","self.best_round",")","equals","or","exceeds","self.patience",",","otherwise","returns","False",".","This","can","be","used","to","indicate","if","training","should","stop","."]
code: def early_stop(self, cur_round, is_best=False):
      """
      Returns True if (cur_round - self.best_round) equals or exceeds self.patience, otherwise returns False.
      This can be used to indicate if training should stop.
      """
      if is_best:
          return False
      return cur_round - self.best_round >= self.patience
  
file_path: autogluon/core/src/autogluon/core/utils/early_stopping.py
label_desc: Use image node_id 3 for calling the AdaptiveES obj's underlying member method code with example usage: obj.early_stop(cur_round, is_best) and returns: unknown, False