class_docstr: The WarmupLR scheduler
  
  This scheduler is almost same as NoamLR Scheduler except for following difference:
  
  NoamLR:
      lr = optimizer.lr * model_size ** -0.5
           * min(step ** -0.5, step * warmup_step ** -1.5)
  WarmupLR:
      lr = optimizer.lr * warmup_step ** 0.5
           * min(step ** -0.5, step * warmup_step ** -1.5)
  
  Note that the maximum lr equals to optimizer.lr in this scheduler.
class_docstr_tok: ["The","WarmupLR","scheduler","This","scheduler","is","almost","same","as","NoamLR","Scheduler","except","for","following","difference",":","NoamLR",":","lr","=","optimizer.lr","*","model_size","*","*","-0.5","*","min","(","step","*","*","-0.5",",","step","*","warmup_step","*","*","-1.5",")","WarmupLR",":","lr","=","optimizer.lr","*","warmup_step","*","*","0.5","*","min","(","step","*","*","-0.5",",","step","*","warmup_step","*","*","-1.5",")","Note","that","the","maximum","lr","equals","to","optimizer.lr","in","this","scheduler","."]
code: def __init__(
      self,
      optimizer: torch.optim.Optimizer,
      warmup_steps: Union[int, float] = 25000,
      last_epoch: int = -1,
  ):
      assert check_argument_types()
      self.warmup_steps = warmup_steps
  
      # __init__() must be invoked before setting field
      # because step() is also invoked in __init__()
      super().__init__(optimizer, last_epoch)
  
file_path: espnet/espnet2/schedulers/warmup_lr.py
imports: from typing import Union
  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 WarmupLR object from inherited base classes: _LRScheduler, AbsBatchStepScheduler with example: obj = WarmupLR(optimizer, warmup_steps, last_epoch)