code: def lr_step_policy(base_lr, steps, decay_factor, warmup_length):
      def _lr_fn(iteration, epoch):
          if epoch < warmup_length:
              lr = base_lr * (epoch + 1) / warmup_length
          else:
              lr = base_lr
              for s in steps:
                  if epoch >= s:
                      lr *= decay_factor
          return lr
  
      return lr_policy(_lr_fn)
  
file_path: DALI/docs/examples/use_cases/pytorch/efficientnet/image_classification/optimizers.py
imports: import math
  import numpy
  import torch
  from torch import optim
label_desc: Use image node_id 5 for calling a global function with example usage: lr_step_policy(base_lr, steps, decay_factor, warmup_length) and returns: lr_policy, lr