class_docstr: Multi step learning rate decay
  
  Args:
      gamma (float | list): decay factor
      milestones (list): steps at which to decay learning rate
class_docstr_tok: ["Multi","step","learning","rate","decay","Args",":","gamma","(","float","|","list",")",":","decay","factor","milestones","(","list",")",":","steps","at","which","to","decay","learning","rate"]
code: def __init__(
      self,
      gamma=[0.1, 0.01],
      milestones=[8, 11],
      values=None,
      use_warmup=True,
  ):
      super(PiecewiseDecay, self).__init__()
      if type(gamma) is not list:
          self.gamma = []
          for i in range(len(milestones)):
              self.gamma.append(gamma / 10**i)
      else:
          self.gamma = gamma
      self.milestones = milestones
      self.values = values
      self.use_warmup = use_warmup
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import sys
  import math
  import paddle
  import paddle.nn
  import paddle.optimizer
  import paddle.regularizer
  from ppdet.core.workspace import register, serializable
  import copy
  from .adamw import AdamWDL, build_adamwdl
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 1 to create a new PiecewiseDecay object from inherited base classes: object with example: obj = PiecewiseDecay(gamma, milestones, values, use_warmup)