code: def get_scheduler(
      self, optimizer, t_total, schedule_type="warmup_cosine"
  ):
      SCHEDULES = {
          None: get_constant_schedule,
          "none": get_constant_schedule,
          "warmup_cosine": get_cosine_schedule_with_warmup,
          "warmup_constant": get_constant_schedule_with_warmup,
          "warmup_linear": get_linear_schedule_with_warmup,
          "warmup_cosine_hard_restarts": get_cosine_with_hard_restarts_schedule_with_warmup,
      }
  
      if schedule_type is None or schedule_type == "none":
          return SCHEDULES[schedule_type](optimizer)
  
      elif schedule_type == "warmup_constant":
          return SCHEDULES[schedule_type](
              optimizer, num_warmup_steps=self.warmup_steps
          )
  
      else:
          return SCHEDULES[schedule_type](
              optimizer,
              num_warmup_steps=self.warmup_steps,
              num_training_steps=t_total,
          )
  
file_path: fast-bert/fast_bert/learner_util.py
imports: import torch
  from pathlib import Path
  import logging
  from transformers import AdamW, get_constant_schedule, get_constant_schedule_with_warmup, get_linear_schedule_with_warmup, get_cosine_schedule_with_warmup, get_cosine_with_hard_restarts_schedule_with_warmup
  from pytorch_lamb import Lamb
label_desc: Use image node_id 3 for calling the Learner obj's underlying member method code with example usage: obj.get_scheduler(optimizer, t_total, schedule_type) and returns: SCHEDULES, SCHEDULES, SCHEDULES