docstr: ivy.Array instance method variant of ivy.optimizer_update. This
  method simply wraps the function, and so the docstring for
  ivy.optimizer_update also applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      Weights of the function to be updated.
  effective_grad
      Effective gradients of the cost c with respect to the weights ws,
      [dc/dw for w in ws].
  lr
      Learning rate(s), the rate(s) at which the weights should be updated
      relative to the gradient.
  stop_gradients
      Whether to stop the gradients of the variables after each gradient step.
      Default is ``True``.
  out
      optional output array, for writing the result to. It must have a shape that
      the inputs broadcast to.
  
  Returns
  -------
  ret
      The new function weights ws_new, following the optimizer updates.
  
  Examples
  --------
  >>> w = ivy.array([1., 2., 3.])
  >>> effective_grad = ivy.zeros(3)
  >>> lr = 3e-4
  >>> ws_new = w.optimizer_update(effective_grad, lr)
  >>> print(ws_new)
  ivy.array([1., 2., 3.])
code: def optimizer_update(
      self: ivy.Array,
      effective_grad: Union[ivy.Array, ivy.NativeArray],
      lr: Union[float, ivy.Array, ivy.NativeArray],
      /,
      *,
      stop_gradients: bool = True,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """ivy.Array instance method variant of ivy.optimizer_update. This
      method simply wraps the function, and so the docstring for
      ivy.optimizer_update also applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          Weights of the function to be updated.
      effective_grad
          Effective gradients of the cost c with respect to the weights ws,
          [dc/dw for w in ws].
      lr
          Learning rate(s), the rate(s) at which the weights should be updated
          relative to the gradient.
      stop_gradients
          Whether to stop the gradients of the variables after each gradient step.
          Default is ``True``.
      out
          optional output array, for writing the result to. It must have a shape that
          the inputs broadcast to.
  
      Returns
      -------
      ret
          The new function weights ws_new, following the optimizer updates.
  
      Examples
      --------
      >>> w = ivy.array([1., 2., 3.])
      >>> effective_grad = ivy.zeros(3)
      >>> lr = 3e-4
      >>> ws_new = w.optimizer_update(effective_grad, lr)
      >>> print(ws_new)
      ivy.array([1., 2., 3.])
      """
      return ivy.optimizer_update(
          self,
          effective_grad,
          lr,
          stop_gradients=stop_gradients,
          out=out,
      )
  
file_path: ivy/ivy/data_classes/array/gradients.py
imports: import abc
  from typing import Union, Optional
  import ivy
label_desc: Use image node_id 3 for calling the _ArrayWithGradients obj's underlying member method code with example usage: obj.optimizer_update() and returns: ivy