class_docstr: Implements BERT version of Adam algorithm with weight decay fix.
  Params:
      lr: learning rate
      warmup: portion of t_total for the warmup, -1  means no warmup. Default: -1
      t_total: total number of training steps for the learning
          rate schedule, -1  means constant learning rate. Default: -1
      schedule: schedule to use for the warmup (see above). Default: 'warmup_linear'
      b1: Adams b1. Default: 0.9
      b2: Adams b2. Default: 0.999
      e: Adams epsilon. Default: 1e-6
      weight_decay: Weight decay. Default: 0.01
      max_grad_norm: Maximum norm for the gradients (-1 means no clipping). Default: 1.0
code: def __init__(
      self,
      params,
      lr=required,
      warmup=-1,
      t_total=-1,
      schedule="warmup_linear",
      b1=0.9,
      b2=0.999,
      e=1e-6,
      weight_decay=0.01,
      max_grad_norm=1.0,
  ):
      if lr is not required and lr < 0.0:
          raise ValueError(
              "Invalid learning rate: {} - should be >= 0.0".format(lr)
          )
      if schedule not in SCHEDULES:
          raise ValueError(
              "Invalid schedule parameter: {}".format(schedule)
          )
      if not 0.0 <= warmup < 1.0 and not warmup == -1:
          raise ValueError(
              "Invalid warmup: {} - should be in [0.0, 1.0[ or -1".format(
                  warmup
              )
          )
      if not 0.0 <= b1 < 1.0:
          raise ValueError(
              "Invalid b1 parameter: {} - should be in [0.0, 1.0[".format(
                  b1
              )
          )
      if not 0.0 <= b2 < 1.0:
          raise ValueError(
              "Invalid b2 parameter: {} - should be in [0.0, 1.0[".format(
                  b2
              )
          )
      if not e >= 0.0:
          raise ValueError(
              "Invalid epsilon value: {} - should be >= 0.0".format(e)
          )
      defaults = dict(
          lr=lr,
          schedule=schedule,
          warmup=warmup,
          t_total=t_total,
          b1=b1,
          b2=b2,
          e=e,
          weight_decay=weight_decay,
          max_grad_norm=max_grad_norm,
      )
      super(BertAdam, self).__init__(params, defaults)
  
file_path: deepspeedexamples/training/BingBertSquad/pytorch_pretrained_bert/optimization.py
imports: import math
  import torch
  from torch.optim import Optimizer
  from torch.optim.optimizer import required
  from torch.nn.utils import clip_grad_norm_
label_desc: Use image node_id 1 to create a new BertAdam object from inherited base classes: Optimizer with example: obj = BertAdam(params, lr, warmup, t_total, schedule, b1, b2, e, weight_decay, max_grad_norm)