code: def __init__(
      self,
      optimizer: torch.optim.Optimizer,
      milestones: List[int],
      gamma: float = 0.1,
      warmup_factor: float = 0.001,
      warmup_iters: int = 1000,
      warmup_method: str = "linear",
      last_epoch: int = -1,
  ):
      logger.warning(
          "WarmupMultiStepLR is deprecated! Use LRMultipilier with fvcore ParamScheduler instead!"
      )
      if not list(milestones) == sorted(milestones):
          raise ValueError(
              "Milestones should be a list of"
              " increasing integers. Got {}",
              milestones,
          )
      self.milestones = milestones
      self.gamma = gamma
      self.warmup_factor = warmup_factor
      self.warmup_iters = warmup_iters
      self.warmup_method = warmup_method
      super().__init__(optimizer, last_epoch)
  
imports: import logging
  import math
  from bisect import bisect_right
  from typing import List
  import torch
  from fvcore.common.param_scheduler import CompositeParamScheduler, ConstantParamScheduler, LinearParamScheduler, ParamScheduler
label_desc: Use image node_id 1 to create a new WarmupMultiStepLR object from inherited base classes: LRScheduler with example: obj = WarmupMultiStepLR(optimizer, milestones, gamma, warmup_factor, warmup_iters, warmup_method, last_epoch)