class_docstr: The PiecewiseLinearWarmupLR scheduler
  
  This scheduler is similar to WarmupLR Scheduler except that
  the warmup stage is piecewise linear.
code: def __init__(
      self,
      optimizer: torch.optim.Optimizer,
      warmup_steps_list: List[Union[int, float]] = [0, 25000],
      warmup_lr_list: List[float] = [0.0, 0.001],
      last_epoch: int = -1,
  ):
      assert check_argument_types()
      self.warmup_steps_list = warmup_steps_list
      self.warmup_lr_list = warmup_lr_list
  
      # __init__() must be invoked before setting field
      # because step() is also invoked in __init__()
      super().__init__(optimizer, last_epoch)
  
file_path: espnet/espnet2/schedulers/piecewise_linear_warmup_lr.py
imports: from typing import List, Union
  import numpy
  import torch
  from torch.optim.lr_scheduler import _LRScheduler
  from typeguard import check_argument_types
  from espnet2.schedulers.abs_scheduler import AbsBatchStepScheduler
label_desc: Use image node_id 1 to create a new PiecewiseLinearWarmupLR object from inherited base classes: _LRScheduler, AbsBatchStepScheduler with example: obj = PiecewiseLinearWarmupLR(optimizer, warmup_steps_list, warmup_lr_list, last_epoch)