class_docstr: Polynomial learning rate scheduler.
  
  Args:
      optimizer (:class:`torch.optim.Optimizer`): Wrapped optimizer.
      total_steps (int): Number of total training steps.
      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,
      end_lr: float = 0.0001,
      power: float = 1.0,
      last_epoch: int = -1,
      **kwargs,
  ):
      if end_lr < 0:
          raise ValueError(f"end_lr must >= 0, got {end_lr}")
      self.total_steps = total_steps
      self.end_lr = end_lr
      self.power = power
      super().__init__(optimizer, 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 PolynomialLR object from inherited base classes: _LRScheduler with example: obj = PolynomialLR(optimizer, total_steps, end_lr, power, last_epoch)