docstr: model_size: hidden size
  factor: coefficient
  warmup: warm up steps(step ** (-0.5) == step * warmup ** (-1.5) holds when warmup equals step)
docstr_tok: ["model_size",":","hidden","size","factor",":","coefficient","warmup",":","warm","up","steps","(","step","*","*","(","-0.5",")","==","step","*","warmup","*","*","(","-1.5",")","holds","when","warmup","equals","step",")"]
code: def __init__(self, model_size, factor, warmup, optimizer):
      """
      model_size: hidden size
      factor: coefficient
      warmup: warm up steps(step ** (-0.5) == step * warmup ** (-1.5) holds when warmup equals step)
      """
      self.optimizer = optimizer
      self._step = 0
      self.warmup = warmup
      self.factor = factor
      self.model_size = model_size
      self._rate = 0
  
label_desc: Use image node_id 1 to create a new NoamOpt object from inherited base classes: object with example: obj = NoamOpt(model_size, factor, warmup, optimizer)