code: def has_metric_plateaued(
      steps, values, num_steps=100, delta=0.1, decrease=True
  ):
      """Check if metric has plateaued.
  
      A metric has plateaued if the value has not increased/decreased (depending on
      `decrease`) by `delta` for at least `num_steps`.
  
      Args:
        steps: list<int> list of global steps for values.
        values: list<float> list of metric values.
        num_steps: int, number of steps the metric has to have been plateaued for.
        delta: float, how much the metric should have changed by over num_steps.
        decrease: bool, whether to check if the metric has decreased by delta or
          increased by delta.
  
      Returns:
        bool, whether the metric has plateaued.
      """
      assert num_steps > 0
      if len(steps) < 2:
          return False
  
      steps_at_least_num_steps_ago = [
          s for s in steps if s <= (steps[-1] - num_steps)
      ]
      if not steps_at_least_num_steps_ago:
          # Not enough steps yet
          return False
      delta_step_idx = len(steps_at_least_num_steps_ago) - 1
  
      start_val = values[delta_step_idx]
      values_to_check = values[delta_step_idx:]
      observed_deltas = []
      for val in values_to_check:
          if decrease:
              observed_delta = start_val - val
          else:
              observed_delta = val - start_val
          observed_deltas.append(observed_delta)
  
      within_range = [obs < delta for obs in observed_deltas]
      return all(within_range)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import tensorflow.compat.v1
  from tensorboard.backend.event_processing import event_accumulator
  from tensorboard.backend.event_processing import event_multiplexer
label_desc: Use image node_id 1 for calling a global function with example usage: has_metric_plateaued(steps, values, num_steps, delta, decrease) and returns: all, False, False