class_docstr: :param params: iterable of parameters to optimize or dicts defining parameter groups
  :param lr: learning rate (default: 1e-3)
  :param Tuple betas: coefficients used for computing
      running averages of gradient and its square (default: (0.9, 0.999))
  :param eps: term added to the denominator to improve
      numerical stability (default: 1e-8)
  :param weight_decay: weight decay (L2 penalty) (default: 0)
  :param clip_norm: magnitude of norm to which gradients are clipped (default: 10.0)
  :param lrd: rate at which learning rate decays (default: 1.0)
  
  Small modification to the Adam algorithm implemented in torch.optim.Adam
  to include gradient clipping and learning rate decay.
  
  Reference
  
  `A Method for Stochastic Optimization`, Diederik P. Kingma, Jimmy Ba
  https://arxiv.org/abs/1412.6980
code: def __init__(
      self,
      params,
      lr: float = 1e-3,
      betas: Tuple = (0.9, 0.999),
      eps: float = 1e-8,
      weight_decay=0,
      clip_norm: float = 10.0,
      lrd: float = 1.0,
  ):
      defaults = dict(
          lr=lr,
          betas=betas,
          eps=eps,
          weight_decay=weight_decay,
          clip_norm=clip_norm,
          lrd=lrd,
      )
      super().__init__(params, defaults)
  
file_path: pyro/pyro/optim/clipped_adam.py
imports: import math
  from typing import Any, Callable, Optional, Tuple
  import torch
  from torch.optim.optimizer import Optimizer
label_desc: Use image node_id 1 to create a new ClippedAdam object from inherited base classes: Optimizer with example: obj = ClippedAdam(params, lr, betas, eps, weight_decay, clip_norm, lrd)