code: def _run_resume(
      self, max_lr=1.0, warmup_updates=0, total_steps=200, **args
  ):
      args["warmup_updates"] = warmup_updates
      if "max_train_steps" not in args:
          args["max_train_steps"] = total_steps
      p = torch.nn.Parameter(torch.randn(4, 4))
      optimizer = torch.optim.SGD([p], lr=max_lr)
      scheduler = lr_scheduler.ParlAILRScheduler.lr_scheduler_factory(
          args, optimizer, {}, True
      )
  
      for step in range(total_steps):
          p = torch.nn.Parameter(torch.randn(4, 4))
          optimizer2 = torch.optim.SGD([p], lr=max_lr)
          sd = {
              "number_training_updates": step,
              "lr_scheduler": scheduler.get_state_dict(),
              "lr_scheduler_type": args["lr_scheduler"],
              "warmup_scheduler": scheduler.get_warmup_state_dict(),
          }
          scheduler2 = (
              lr_scheduler.ParlAILRScheduler.lr_scheduler_factory(
                  args, optimizer2, sd, False
              )
          )
          assert (
              scheduler.get_last_lr() == scheduler2.get_last_lr()
          ), step
          scheduler.step(step)
  
      sd = {
          "number_training_updates": step,
          "lr_scheduler": scheduler.get_state_dict(),
          "lr_scheduler_type": args["lr_scheduler"],
          "warmup_scheduler": scheduler.get_warmup_state_dict(),
      }
      optimizer2 = torch.optim.SGD([p], lr=max_lr)
      scheduler2 = lr_scheduler.ParlAILRScheduler.lr_scheduler_factory(
          args, optimizer2, sd, False
      )
      assert scheduler.get_last_lr() == scheduler2.get_last_lr()
  
imports: import os
  import unittest
  import torch
  import parlai.nn.lr_scheduler
  import parlai.utils.testing
label_desc: Use image node_id 2 for calling the TestLRSchedulers obj's underlying member method code with example usage: obj._run_resume(max_lr, warmup_updates, total_steps) without return types