class_docstr: Class for LR Schedulers.
  
  Includes some basic functionality by default - setting up the warmup
  scheduler, passing the correct number of steps to train_step, loading and
  saving states.
  Subclasses must implement abstract methods train_step() and valid_step().
  Schedulers should be initialized with lr_scheduler_factory().
  __init__() should not be called directly.
docstr: Use the number of train steps to adjust the warmup scheduler or the main
  scheduler, depending on where in training we are.
  
  Override this method to override the behavior for training schedulers.
docstr_tok: ["Use","the","number","of","train","steps","to","adjust","the","warmup","scheduler","or","the","main","scheduler",",","depending","on","where","in","training","we","are",".","Override","this","method","to","override","the","behavior","for","training","schedulers","."]
code: def step(self, num_steps):
      """
      Use the number of train steps to adjust the warmup scheduler or the main
      scheduler, depending on where in training we are.
  
      Override this method to override the behavior for training schedulers.
      """
      self._number_training_updates = num_steps
      if self._is_lr_warming_up():
          self.warmup_scheduler.step()
      else:
          scheduler_steps = num_steps - self.warmup_updates
          self.train_step(scheduler_steps)
  
imports: import math
  from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from abc import abstractmethod
  from torch import optim
  import numpy
  from parlai.core.exceptions import StopTrainException
  from parlai.utils.misc import warn_once
label_desc: Use image node_id 12 for calling the ParlAILRScheduler obj's underlying member method code with example usage: obj.step(num_steps) without return types