class_docstr: Progressive Layer Dropping (PLD) for model training.
      This implements the PLD technique for compressed model training
      from this paper: https://arxiv.org/pdf/2010.13369.pdf
  Args:
      theta (float): a hyper-parameter that controls the trade-off between training time and robustness.
      The lower the theta value, the faster the training speed. Default value: 0.5.
      gamma (float): a hyper-parameter that controls how fast the drop ratio increases. Default value: 0.001.
code: def __init__(self, theta=0.5, gamma=0.001):
      super().__init__()
  
      self.theta = theta
      self.gamma = gamma
      self.current_theta = 1.0
      log_dist(
          f"Enabled progressive layer dropping (theta = {self.theta})",
          ranks=[0],
      )
  
imports: import numpy
  from deepspeed.utils import log_dist
label_desc: Use image node_id 1 to create a new ProgressiveLayerDrop object from inherited base classes: object with example: obj = ProgressiveLayerDrop(theta, gamma)