class_docstr: One Cycle LR Scheduler.
  
  The 1cycle learning rate policy changes the learning rate after every
  batch. The one cycle learning rate policy is described in
  https://arxiv.org/pdf/1708.07120.pdf
  
  Args:
      max_lr (float or list): Upper learning rate boundaries in the cycle
          for each parameter group.
      total_steps (int, optional): The total number of steps in the cycle.
          Note that if a value is not provided here, it will be the max_iter
          of runner. Default: None.
      pct_start (float): The percentage of the cycle (in number of steps)
          spent increasing the learning rate.
          Default: 0.3
      anneal_strategy (str): {'cos', 'linear'}
          Specifies the annealing strategy: 'cos' for cosine annealing,
          'linear' for linear annealing.
          Default: 'cos'
      div_factor (float): Determines the initial learning rate via
          initial_lr = max_lr/div_factor
          Default: 25
      final_div_factor (float): Determines the minimum learning rate via
          min_lr = initial_lr/final_div_factor
          Default: 1e4
      three_phase (bool): If three_phase is True, use a third phase of the
          schedule to annihilate the learning rate according to
          final_div_factor instead of modifying the second phase (the first
          two phases will be symmetrical about the step indicated by
          pct_start).
          Default: False
code: def get_lr(self, runner, base_lr):
      curr_iter = runner.iter
      start_iter = 0
      for i, (end_iter, start_lr, end_lr) in enumerate(self.lr_phases):
          if curr_iter <= end_iter:
              pct = (curr_iter - start_iter) / (end_iter - start_iter)
              lr = self.anneal_func(
                  base_lr * start_lr, base_lr * end_lr, pct
              )
              break
          start_iter = end_iter
      return lr
  
imports: import numbers
  from math import cos, pi
  import annotator.uniformer.mmcv
  from .hook import HOOKS, Hook
label_desc: Use image node_id 3 for calling the OneCycleLrUpdaterHook obj's underlying member method code with example usage: obj.get_lr(runner, base_lr) and returns: lr