class_docstr: Consine annealing with warm up and restarts.
  Proposed in `SGDR: Stochastic Gradient Descent with Warm Restarts`.
class_docstr_tok: ["Consine","annealing","with","warm","up","and","restarts",".","Proposed","in","`","SGDR",":","Stochastic","Gradient","Descent","with","Warm","Restarts","`","."]
code: def get_lr(self):
      if self.last_epoch < self.warmup_epoch:
          return [
              self.eta_min
              + self.last_epoch
              * (base_lr - self.eta_min)
              / self.warmup_epoch
              for base_lr in self.base_lrs
          ]
      elif self.last_epoch < self.start_cyclical:
          return [
              self.eta_min
              + (base_lr - self.eta_min)
              * (
                  1
                  + math.cos(
                      math.pi
                      * (self.last_epoch - self.warmup_epoch)
                      / (self.start_cyclical - self.warmup_epoch)
                  )
              )
              / 2
              for base_lr in self.base_lrs
          ]
      else:
          return [
              self.eta_min
              + (self.cyclical_base_lr - self.eta_min)
              * (
                  1
                  + math.cos(
                      math.pi
                      * (
                          (self.last_epoch - self.start_cyclical)
                          % self.cyclical_epoch
                      )
                      / self.cyclical_epoch
                  )
              )
              / 2
              for base_lr in self.base_lrs
          ]
  
file_path: insightface/parsing/dml_csr/utils/warmup_scheduler.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  from torch.optim.lr_scheduler import _LRScheduler
label_desc: Use image node_id 2 for calling the SGDRScheduler obj's underlying member method code with example usage: obj.get_lr() and returns: unknown, unknown, unknown