class_docstr: Flat and cosine annealing learning rate scheduler. The learning rate will be a fixed value before starting decay.
  
  Args:
      optimizer (:class:`torch.optim.Optimizer`): Wrapped optimizer.
      total_steps (int): Number of total training steps.
      pct_start (float, optional): Percent of steps before starting learning rate decay, defaults to -0.72.
      last_epoch (int, optional): The index of last epoch, defaults to -1. When last_epoch=-1,
          the schedule is started from the beginning or When last_epoch=-1, sets initial lr as lr.
code: def __init__(
      self,
      optimizer,
      total_steps: int,
      pct_start: float = 0.72,
      last_epoch: int = -1,
      **kwargs,
  ):
      if not (0.0 <= pct_start <= 1.0):
          raise ValueError(
              f"pct_start must >= 0.0 and <= 1.0, got {pct_start}"
          )
      flat_steps = int(total_steps * pct_start)
      anneal_steps = total_steps - flat_steps
      base_scheduler = _CosineAnnealingLR(optimizer, anneal_steps)
      super().__init__(
          optimizer, flat_steps, base_scheduler, last_epoch=last_epoch
      )
  
file_path: colossalai/colossalai/nn/lr_scheduler/cosine.py
imports: from torch.optim.lr_scheduler import CosineAnnealingLR
  from .delayed import DelayerScheduler, WarmupDelayerScheduler, WarmupScheduler
label_desc: Use image node_id 1 to create a new FlatAnnealingLR object from inherited base classes: DelayerScheduler with example: obj = FlatAnnealingLR(optimizer, total_steps, pct_start, last_epoch)