class_docstr: Multi-step learning rate scheduler with optional linear warm-up strategy
code: def get_lr(self, epoch: int, curr_iter: int) -> float:
      if curr_iter < self.warmup_iterations:
          return max(
              0.0, self.warmup_init_lr + curr_iter * self.warmup_step
          )
      else:
          if epoch in self.milestones:
              self.lr = self.lr * self.gamma
              self.milestones.remove(epoch)
          return max(0.0, self.lr)
  
file_path: ml-cvnets/optim/scheduler/multi_step.py
imports: import argparse
  from optim.scheduler import SCHEDULER_REGISTRY
  from optim.scheduler.base_scheduler import BaseLRScheduler
label_desc: Use image node_id 3 for calling the MultiStepLRScheduler obj's underlying member method code with example usage: obj.get_lr(epoch, curr_iter) and returns: max, max