code: def get_linear_schedule_with_warmup(
      optimizer, num_warmup_steps, num_training_steps
  ):
      """
      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 (:class:`~torch.optim.Optimizer`):
              The optimizer for which to schedule the learning rate.
          num_warmup_steps (:obj:`int`):
              The number of steps for the warmup phase.
          num_training_steps (:obj:`int`):
              The total number of training steps.
      Return:
          :obj:`torch.optim.lr_scheduler.LambdaLR` with the appropriate schedule.
      """
  
      def lr_lambda(current_step: int):
          if current_step < num_warmup_steps:
              return float(current_step) / float(
                  max(1, num_warmup_steps)
              )
          return max(
              0.0,
              float(num_training_steps - current_step)
              / float(max(1, num_training_steps - num_warmup_steps)),
          )
  
      return LambdaLR(optimizer, lr_lambda)
  
label_desc: Use image node_id 1 for calling a global function with example usage: get_linear_schedule_with_warmup(optimizer, num_warmup_steps, num_training_steps) and returns: LambdaLR, max, unknown