class_docstr: Optimizer that implements the Adamax algorithm.
  
  Adamax, a variant of Adam based on the infinity norm, is a first-order
  gradient-based optimization method. Due to its capability of adjusting the
  learning rate based on data characteristics, it is suited to learn
  time-variant process, e.g., speech data with dynamically changed noise
  conditions. Default parameters follow those provided in the paper (see
  references below).
  
  Initialization:
  
  ```python
  m = 0  # Initialize initial 1st moment vector
  u = 0  # Initialize the exponentially weighted infinity norm
  t = 0  # Initialize timestep
  ```
  
  The update rule for parameter `w` with gradient `g` is described at the end
  of section 7.1 of the paper (see the referenece section):
  
  ```python
  t += 1
  m = beta1 * m + (1 - beta) * g
  u = max(beta2 * u, abs(g))
  current_lr = learning_rate / (1 - beta1 ** t)
  w = w - current_lr * m / (u + epsilon)
  ```
  
  Args:
      learning_rate: A float, a
          `keras.optimizers.schedules.LearningRateSchedule` instance, or
          a callable that takes no arguments and returns the actual value to
          use. The learning rate. Defaults to `0.001`.
      beta_1: A float value or a constant float tensor. The exponential decay
          rate for the 1st moment estimates.
      beta_2: A float value or a constant float tensor. The exponential decay
          rate for the exponentially weighted infinity norm.
      epsilon: A small constant for numerical stability.
          {{base_optimizer_keyword_args}}
  
  Reference:
  
  - [Kingma et al., 2014](http://arxiv.org/abs/1412.6980)
code: def __init__(
      self,
      learning_rate=0.001,
      beta_1=0.9,
      beta_2=0.999,
      epsilon=1e-7,
      weight_decay=None,
      clipnorm=None,
      clipvalue=None,
      global_clipnorm=None,
      use_ema=False,
      ema_momentum=0.99,
      ema_overwrite_frequency=None,
      name="adamax",
      **kwargs,
  ):
      super().__init__(
          learning_rate=learning_rate,
          name=name,
          weight_decay=weight_decay,
          clipnorm=clipnorm,
          clipvalue=clipvalue,
          global_clipnorm=global_clipnorm,
          use_ema=use_ema,
          ema_momentum=ema_momentum,
          ema_overwrite_frequency=ema_overwrite_frequency,
          **kwargs,
      )
      self.beta_1 = beta_1
      self.beta_2 = beta_2
      self.epsilon = epsilon
  
file_path: keras/keras/optimizers/adamax.py
imports: from keras import ops
  from keras.api_export import keras_export
  from keras.optimizers import optimizer
label_desc: Use image node_id 1 to create a new Adamax object from inherited base classes: optimizer with example: obj = Adamax(learning_rate, beta_1, beta_2, epsilon, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, name)