docstr: ivy.Array instance method variant of ivy.lamb_update. This method
  simply wraps the function, and so the docstring for ivy.lamb_update
  also applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      Weights of the function to be updated.
  dcdw
      Derivates 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.
  mw_tm1
      running average of the gradients, from the previous time-step.
  vw_tm1
      running average of second moments of the gradients, from the previous
      time-step.
  step
      training step.
  beta1
      gradient forgetting factor (Default value = 0.9).
  beta2
      second moment of gradient forgetting factor (Default value = 0.999).
  epsilon
      divisor during adam update, preventing division by zero
      (Default value = 1e-7).
  max_trust_ratio
      The maximum value for the trust ratio. Default is 10.
  decay_lambda
      The factor used for weight decay. Default is zero.
  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 LAMB updates.
  
  Examples
  --------
  With :class:`ivy.Array` inputs:
  
  >>> w = ivy.array([1., 2, 3])
  >>> dcdw = ivy.array([0.5,0.2,0.1])
  >>> lr = ivy.array(0.1)
  >>> vw_tm1 = ivy.zeros(1)
  >>> mw_tm1 = ivy.zeros(3)
  >>> step = ivy.array(1)
  >>> new_weights = w.lamb_update(dcdw, lr, mw_tm1, vw_tm1, step)
  >>> print(new_weights)
  (ivy.array([0.784, 1.78 , 2.78 ]),
  ivy.array([0.05, 0.02, 0.01]),
  ivy.array([2.5e-04, 4.0e-05, 1.0e-05]))
code: def lamb_update(
      self: ivy.Array,
      dcdw: Union[ivy.Array, ivy.NativeArray],
      lr: Union[float, ivy.Array, ivy.NativeArray],
      mw_tm1: Union[ivy.Array, ivy.NativeArray],
      vw_tm1: Union[ivy.Array, ivy.NativeArray],
      step: int,
      /,
      *,
      beta1: float = 0.9,
      beta2: float = 0.999,
      epsilon: float = 1e-7,
      max_trust_ratio: Union[int, float] = 10,
      decay_lambda: float = 0,
      stop_gradients: bool = True,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """ivy.Array instance method variant of ivy.lamb_update. This method
      simply wraps the function, and so the docstring for ivy.lamb_update
      also applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          Weights of the function to be updated.
      dcdw
          Derivates 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.
      mw_tm1
          running average of the gradients, from the previous time-step.
      vw_tm1
          running average of second moments of the gradients, from the previous
          time-step.
      step
          training step.
      beta1
          gradient forgetting factor (Default value = 0.9).
      beta2
          second moment of gradient forgetting factor (Default value = 0.999).
      epsilon
          divisor during adam update, preventing division by zero
          (Default value = 1e-7).
      max_trust_ratio
          The maximum value for the trust ratio. Default is 10.
      decay_lambda
          The factor used for weight decay. Default is zero.
      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 LAMB updates.
  
      Examples
      --------
      With :class:`ivy.Array` inputs:
  
      >>> w = ivy.array([1., 2, 3])
      >>> dcdw = ivy.array([0.5,0.2,0.1])
      >>> lr = ivy.array(0.1)
      >>> vw_tm1 = ivy.zeros(1)
      >>> mw_tm1 = ivy.zeros(3)
      >>> step = ivy.array(1)
      >>> new_weights = w.lamb_update(dcdw, lr, mw_tm1, vw_tm1, step)
      >>> print(new_weights)
      (ivy.array([0.784, 1.78 , 2.78 ]),
      ivy.array([0.05, 0.02, 0.01]),
      ivy.array([2.5e-04, 4.0e-05, 1.0e-05]))
      """
      return ivy.lamb_update(
          self,
          dcdw,
          lr,
          mw_tm1,
          vw_tm1,
          step,
          beta1=beta1,
          beta2=beta2,
          epsilon=epsilon,
          max_trust_ratio=max_trust_ratio,
          decay_lambda=decay_lambda,
          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 7 for calling the _ArrayWithGradients obj's underlying member method code with example usage: obj.lamb_update() and returns: ivy