class_docstr: Reduce the learning rate according to a polynomial of given power.
  
  During warmup
      Increase the learning rate linearly from warmup_init_lr to base_lr,
  After warmup
      Decay the learning rate with
          lr = base_lr * sqrt(warmup_steps) / sqrt(num_update)
  
  Parameters
  ----------
      warmup_steps
          maximum number of updates before the decay reaches final learning rate.
      base_lr
          The final learning rate in the warm-up stage. The learning rate starts to decay after
          the lr reaches warmup_end_lr
      warmup_init_lr
          The initial learning rate of the scheduler. The warm up starts at this point.
class_docstr_tok: ["Reduce","the","learning","rate","according","to","a","polynomial","of","given","power",".","During","warmup","Increase","the","learning","rate","linearly","from","warmup_init_lr","to","base_lr",",","After","warmup","Decay","the","learning","rate","with","lr","=","base_lr","*","sqrt","(","warmup_steps",")","\/","sqrt","(","num_update",")","Parameters","--","--","--","--","--","warmup_steps","maximum","number","of","updates","before","the","decay","reaches","final","learning","rate",".","base_lr","The","final","learning","rate","in","the","warm-up","stage",".","The","learning","rate","starts","to","decay","after","the","lr","reaches","warmup_end_lr","warmup_init_lr","The","initial","learning","rate","of","the","scheduler",".","The","warm","up","starts","at","this","point","."]
code: def __call__(self, num_update):
      if num_update < self.warmup_steps:
          return self.get_warmup_lr(num_update)
      else:
          return (
              self.base_lr
              * math.sqrt(self.warmup_steps)
              / math.sqrt(num_update)
          )
  
imports: import math
  from mxnet import lr_scheduler
label_desc: Use image node_id 2 for calling the InverseSquareRootScheduler obj's underlying member method code with example usage: obj.__call__(num_update) and returns: self, unknown