code: def get_linear_schedule_with_warmup(
      optimizer, num_warmup_steps, num_training_steps, last_epoch=-1
  ):
      """
      Create a schedule with a learning rate that decreases linearly from the initial lr set in the optimizer to 0, after
      a warmup period during which it increases linearly from 0 to the initial lr set in the optimizer.
      Args:
          optimizer ([`~torch.optim.Optimizer`]):
              The optimizer for which to schedule the learning rate.
          num_warmup_steps (`int`):
              The number of steps for the warmup phase.
          num_training_steps (`int`):
              The total number of training steps.
          last_epoch (`int`, *optional*, defaults to -1):
              The index of the last epoch when resuming training.
      Return:
          `torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.
      """
      lr_lambda = functools.partial(
          _linear_warmup_lr_lambda,
          num_warmup_steps=num_warmup_steps,
          num_training_steps=num_training_steps,
      )
      return LambdaLR(optimizer, lr_lambda, last_epoch)
  
file_path: autogluon/multimodal/src/autogluon/multimodal/optimization/lr_scheduler.py
imports: import functools
  import math
  from torch.optim.lr_scheduler import LambdaLR
label_desc: Use image node_id 6 for calling a global function with example usage: get_linear_schedule_with_warmup(optimizer, num_warmup_steps, num_training_steps, last_epoch) and returns: LambdaLR