class_docstr: M = b1 * M + (1-b1) * G
  V = b2 * V + (1-b2) * G^2
  V_hat = max(V_hat, V)
  W = W - r * M / sqrt(V_hat)
  
  Reference: https://paperswithcode.com/method/amsgrad
code: def __init__(self, learning_rate=0.001, beta1=0.9, beta2=0.999):
      self.learning_rate = learning_rate
      self.beta1 = beta1
      self.beta2 = beta2
      self.Ms = {}
      self.Vs = {}
      self.Vhats = {}
      self.epsilon = (
          2
          ** -tfe.get_protocol().fixedpoint_config.precision_fractional
      )
  
file_path: tf-encrypted/tf_encrypted/keras/optimizers.py
imports: import numpy
  import tensorflow
  import tf_encrypted
label_desc: Use image node_id 1 to create a new AMSgrad object  with example: obj = AMSgrad(learning_rate, beta1, beta2)