class_docstr: The learning rate schedule callback decreases the learning rate by a
  predefined factor after each of the provided milestones (after x seconds
  during training).
docstr: Args:
      decay: The factor which to use for reducing the learning rate.
      milestones: The number of seconds after which the learning rate should be decreased
          according to the provided decay.
code: def __init__(
      self,
      milestones: List[float],
      decay: float = 0.5,
  ):
      """
      Args:
          decay: The factor which to use for reducing the learning rate.
          milestones: The number of seconds after which the learning rate should be decreased
              according to the provided decay.
      """
      assert all(
          x < y for x, y in zip(milestones, milestones[1:])
      ), "Milestones must be increasing."
  
      super().__init__()
      self.lr = 0
      self.decay = decay
      self.milestones = milestones
      self.milestone_index = 0
      self.trainer: Optional[Trainer] = None
  
file_path: gluonts/src/gluonts/nursery/tsbench/src/tsbench/gluonts/callbacks/learning_rate.py
imports: from typing import cast, List, Optional
  from mxnet.gluon import nn
  from mxnet.gluon.trainer import Trainer
  from .base import Callback
label_desc: Use image node_id 1 to create a new LearningRateScheduleCallback object from inherited base classes: Callback with example: obj = LearningRateScheduleCallback(milestones, decay)