code: def __init__(
      self,
      x: ep.Tensor,
      stepsize: float,
      beta1: float = 0.9,
      beta2: float = 0.999,
      epsilon: float = 1e-8,
  ):
      self.stepsize = stepsize
      self.beta1 = beta1
      self.beta2 = beta2
      self.epsilon = epsilon
  
      self.m = ep.zeros_like(x)
      self.v = ep.zeros_like(x)
      self.t = 0
  
imports: from typing import Union, Any, Optional, Callable, Tuple
  from abc import ABC, abstractmethod
  import eagerpy
  from ..devutils import flatten
  from ..devutils import atleast_kd
  from ..types import Bounds
  from ..models.base import Model
  from ..criteria import Misclassification, TargetedMisclassification
  from ..distances import l1, l2, linf
  from .base import FixedEpsilonAttack
  from .base import T
  from .base import get_criterion
  from .base import raise_if_kwargs
  from .base import verify_input_bounds
label_desc: Use image node_id 1 to create a new AdamOptimizer object from inherited base classes: Optimizer with example: obj = AdamOptimizer(x, stepsize, beta1, beta2, epsilon)