class_docstr: Polynomial LR scheduler
code: def __init__(self, opts, **kwargs) -> None:
      is_iter_based = getattr(
          opts, "scheduler.is_iteration_based", False
      )
      max_iterations = getattr(opts, "scheduler.max_iterations", 50000)
      max_epochs = getattr(opts, "scheduler.max_epochs", 350)
  
      super(PolynomialScheduler, self).__init__(opts=opts)
  
      self.start_lr = getattr(
          opts, "scheduler.polynomial.start_lr", 0.1
      )
      self.end_lr = getattr(opts, "scheduler.polynomial.end_lr", 0.0)
      self.power = getattr(opts, "scheduler.polynomial.power", 0.9)
  
      if self.warmup_iterations > 0:
          self.warmup_step = (
              self.start_lr - self.warmup_init_lr
          ) / self.warmup_iterations
  
      self.is_iter_based = is_iter_based
      self.max_iterations = max_iterations - self.warmup_iterations + 1
      self.max_epochs = max_epochs
  
file_path: ml-cvnets/optim/scheduler/polynomial.py
imports: import argparse
  from optim.scheduler import SCHEDULER_REGISTRY
  from optim.scheduler.base_scheduler import BaseLRScheduler
label_desc: Use image node_id 1 to create a new PolynomialScheduler object from inherited base classes: BaseLRScheduler with example: obj = PolynomialScheduler(opts)