class_docstr: Gradually warm-up(increasing) learning rate in optimizer.
  Proposed in 'Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour'.
  
  Args:
      optimizer (Optimizer): Wrapped optimizer.
      multiplier: target learning rate = base lr * multiplier if multiplier > 1.0. if multiplier = 1.0, lr starts from 0 and ends up with the base_lr.
      total_epoch: target learning rate is reached at total_epoch, gradually
      after_scheduler: after target_epoch, use this scheduler(eg. ReduceLROnPlateau)
class_docstr_tok: ["Gradually","warm-up","(","increasing",")","learning","rate","in","optimizer",".","Proposed","in","'Accurate",",","Large","Minibatch","SGD",":","Training","ImageNet","in","1","Hour","'",".","Args",":","optimizer","(","Optimizer",")",":","Wrapped","optimizer",".","multiplier",":","target","learning","rate","=","base","lr","*","multiplier","if","multiplier",">","1.0.","if","multiplier","=","1.0",",","lr","starts","from","0","and","ends","up","with","the","base_lr",".","total_epoch",":","target","learning","rate","is","reached","at","total_epoch",",","gradually","after_scheduler",":","after","target_epoch",",","use","this","scheduler","(","eg",".","ReduceLROnPlateau",")"]
code: def get_lr(self):
      if self.last_epoch > self.total_epoch:
          if self.after_scheduler:
              if not self.finished:
                  self.after_scheduler.base_lrs = [
                      base_lr * self.multiplier
                      for base_lr in self.base_lrs
                  ]
                  self.finished = True
              return self.after_scheduler.get_last_lr()
          return [
              base_lr * self.multiplier for base_lr in self.base_lrs
          ]
  
      if self.multiplier == 1.0:
          return [
              max(
                  1e-6,
                  base_lr * (float(self.last_epoch) / self.total_epoch),
              )
              for base_lr in self.base_lrs
          ]
      else:
          return [
              base_lr
              * (
                  (self.multiplier - 1.0)
                  * self.last_epoch
                  / self.total_epoch
                  + 1.0
              )
              for base_lr in self.base_lrs
          ]
  
imports: import math
  import warnings
  import numpy
  from torch import nn
  from torch.optim.optimizer import Optimizer
  from torch.optim.lr_scheduler import _LRScheduler, LambdaLR, ExponentialLR, CyclicLR, MultiStepLR, ReduceLROnPlateau, CosineAnnealingLR, CosineAnnealingWarmRestarts
label_desc: Use image node_id 2 for calling the GradualWarmupScheduler obj's underlying member method code with example usage: obj.get_lr() and returns: unknown, unknown, unknown, self