class_docstr: Optimizer that implements the Adagrad algorithm.
  
  Adagrad is an optimizer with parameter-specific learning rates,
  which are adapted relative to how frequently a parameter gets
  updated during training. The more updates a parameter receives,
  the smaller the updates.
  
  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`. Note that `Adagrad`
          tends to benefit from higher initial learning rate values compared
          to other optimizers. To match the exact form in the original paper,
          use `1.0`.
      initial_accumulator_value: Floating point value. Starting value for the
          accumulators (per-parameter momentum values). Must be non-negative.
      epsilon: Small floating point value for maintaining numerical stability.
      {{base_optimizer_keyword_args}}
  
  Reference:
  
  - [Duchi et al., 2011](
      http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf).
docstr: Update step given gradient and the associated model variable.
docstr_tok: ["Update","step","given","gradient","and","the","associated","model","variable","."]
code: def update_step(self, gradient, variable, learning_rate):
      """Update step given gradient and the associated model variable."""
      lr = ops.cast(learning_rate, variable.dtype)
      gradient = ops.cast(gradient, variable.dtype)
  
      accumulator = self._accumulators[
          self._get_variable_index(variable)
      ]
  
      self.assign_add(accumulator, ops.square(gradient))
      self.assign_sub(
          variable,
          ops.divide(
              ops.multiply(lr, gradient),
              ops.sqrt(ops.add(accumulator, self.epsilon)),
          ),
      )
  
file_path: keras/keras/optimizers/adagrad.py
imports: from keras import initializers
  from keras import ops
  from keras.api_export import keras_export
  from keras.optimizers import optimizer
label_desc: Use image node_id 3 for calling the Adagrad obj's underlying member method code with example usage: obj.update_step(gradient, variable, learning_rate) without return types