class_docstr: Polynomial learning rate scheduler with warmup.
  
  Args:
      optimizer (:class:`torch.optim.Optimizer`): Wrapped optimizer.
      total_steps (int): Number of total training steps.
      warmup_steps (int, optional): Number of warmup steps, defaults to 0.
      end_lr (float, optional): Minimum learning rate, defaults to 0.0001.
      power (float, optional): The power of polynomial, defaults to 1.0.
      last_epoch (int, optional): The index of last epoch, defaults to -1. When last_epoch=-1,
          the schedule is started from the beginning or When last_epoch=-1, sets initial lr as lr.
code: def __init__(
      self,
      optimizer,
      total_steps: int,
      warmup_steps: int = 0,
      end_lr: float = 0.0001,
      power: float = 1.0,
      last_epoch: int = -1,
      **kwargs,
  ):
      base_scheduler = PolynomialLR(
          optimizer,
          total_steps - warmup_steps,
          end_lr=end_lr,
          power=power,
      )
      super().__init__(
          optimizer, warmup_steps, base_scheduler, last_epoch=last_epoch
      )
  
file_path: colossalai/colossalai/nn/lr_scheduler/poly.py
imports: from torch.optim.lr_scheduler import _LRScheduler
  from .delayed import WarmupScheduler
label_desc: Use image node_id 1 to create a new PolynomialWarmupLR object from inherited base classes: WarmupScheduler with example: obj = PolynomialWarmupLR(optimizer, total_steps, warmup_steps, end_lr, power, last_epoch)