class_docstr: A wrapper for the LR scheduler to enable gradient accumulation by skipping the steps
  before accumulation size is reached.
  
  Args:
      lr_scheduler (:class:`torch.optim.lr_scheduler._LRScheduler`):
          Your ``lr_scheduler`` object for gradient accumulation.
      accumulate_size (int): The number of steps to accumulate gradients.
code: def __init__(
      self, lr_scheduler: _LRScheduler, accumulate_size: int
  ) -> None:
      self.lr_scheduler = lr_scheduler
      self.accumulate_size = accumulate_size
      self.accumulate_step = 0
  
imports: from typing import Any, Iterable, Tuple, Union
  import torch.nn
  from torch import Tensor
  from torch.nn.parallel.distributed import DistributedDataParallel
  from torch.optim import Optimizer
  from torch.optim.lr_scheduler import _LRScheduler
  from torch.utils.data import DataLoader
  from colossalai.interface import OptimizerWrapper
  from colossalai.legacy.engine import BaseGradientHandler
  from colossalai.utils import conditional_context
label_desc: Use image node_id 1 to create a new GradAccumLrSchedulerByStep object from inherited base classes: _LRScheduler with example: obj = GradAccumLrSchedulerByStep(lr_scheduler, accumulate_size)