docstr: ivy.Container instance method variant of ivy.adam_step. This method
  simply wraps the function, and so the docstring for ivy.adam_step also
  applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      Derivates of the cost c with respect to the weights ws, [dc/dw for w in ws].
  mw
      running average of the gradients.
  vw
      running average of second moments of the gradients.
  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).
  out
      optional output container, for writing the result to. It must have a shape
      that the inputs broadcast to.
  
  Returns
  -------
  ret
      The adam step delta.
  
  Examples
  --------
  With one :class:`ivy.Container` input:
  
  >>> dcdw = ivy.Container(a=ivy.array([0., 1., 2.]),
  ...                         b=ivy.array([3., 4., 5.]))
  >>> mw = ivy.array([1., 4., 9.])
  >>> vw = ivy.array([0.,])
  >>> step = ivy.array([3.4])
  >>> beta1 = 0.87
  >>> beta2 = 0.976
  >>> epsilon = 1e-5
  >>> adam_step_delta = dcdw.adam_step(mw, vw, step, beta1=beta1, beta2=beta2,
  ...                                     epsilon=epsilon)
  >>> print(adam_step_delta)
  ({
      a: ivy.array([6.49e+04, 1.74e+01, 1.95e+01]),
      b: ivy.array([2.02, 4.82, 8.17])
  }, {
      a: ivy.array([0.87, 3.61, 8.09]),
      b: ivy.array([1.26, 4., 8.48])
  }, {
      a: ivy.array([0., 0.024, 0.096]),
      b: ivy.array([0.216, 0.384, 0.6])
  })
  
  With multiple :class:`ivy.Container` inputs:
  
  >>> dcdw = ivy.Container(a=ivy.array([0., 1., 2.]),
  ...                        b=ivy.array([3., 4., 5.]))
  >>> mw = ivy.Container(a=ivy.array([0., 0., 0.]),
  ...                    b=ivy.array([0., 0., 0.]))
  >>> vw = ivy.Container(a=ivy.array([0.,]),
  ...                    b=ivy.array([0.,]))
  >>> step = ivy.array([3.4])
  >>> beta1 = 0.87
  >>> beta2 = 0.976
  >>> epsilon = 1e-5
  >>> adam_step_delta = dcdw.adam_step(mw, vw, step, beta1=beta1, beta2=beta2,
  ...                                     epsilon=epsilon)
  >>> print(adam_step_delta)
  ({
      a: ivy.array([0., 0.626, 0.626]),
      b: ivy.array([0.626, 0.626, 0.626])
  }, {
      a: ivy.array([0., 0.13, 0.26]),
      b: ivy.array([0.39, 0.52, 0.65])
  }, {
      a: ivy.array([0., 0.024, 0.096]),
      b: ivy.array([0.216, 0.384, 0.6])
  })
docstr_tok: ["ivy.Container","instance","method","variant","of","ivy.adam_step",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.adam_step","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","self","Derivates","of","the","cost","c","with","respect","to","the","weights","ws",",","[","dc\/dw","for","w","in","ws","]",".","mw","running","average","of","the","gradients",".","vw","running","average","of","second","moments","of","the","gradients",".","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",")",".","out","optional","output","container",",","for","writing","the","result","to",".","It","must","have","a","shape","that","the","inputs","broadcast","to",".","Returns","--","--","--","-","ret","The","adam","step","delta",".","Examples","--","--","--","--","With","one",":","class",":","`","ivy.Container","`","input",":",">",">",">","dcdw","=","ivy.Container","(","a=ivy.array","(","[","0.",",","1.",",","2",".","]",")",",","...","b=ivy.array","(","[","3.",",","4.",",","5",".","]",")",")",">",">",">","mw","=","ivy.array","(","[","1.",",","4.",",","9",".","]",")",">",">",">","vw","=","ivy.array","(","[","0.",",","]",")",">",">",">","step","=","ivy.array","(","[","3.4","]",")",">",">",">","beta1","=","0.87",">",">",">","beta2","=","0.976",">",">",">","epsilon","=","1e-5",">",">",">","adam_step_delta","=","dcdw.adam_step","(","mw",",","vw",",","step",",","beta1=beta1",",","beta2=beta2",",","...","epsilon=epsilon",")",">",">",">","print","(","adam_step_delta",")","(","{","a",":","ivy.array","(","[","6.49e+04",",","1.74e+01",",","1.95e+01","]",")",",","b",":","ivy.array","(","[","2.02",",","4.82",",","8.17","]",")","}",",","{","a",":","ivy.array","(","[","0.87",",","3.61",",","8.09","]",")",",","b",":","ivy.array","(","[","1.26",",","4.",",","8.48","]",")","}",",","{","a",":","ivy.array","(","[","0.",",","0.024",",","0.096","]",")",",","b",":","ivy.array","(","[","0.216",",","0.384",",","0.6","]",")","}",")","With","multiple",":","class",":","`","ivy.Container","`","inputs",":",">",">",">","dcdw","=","ivy.Container","(","a=ivy.array","(","[","0.",",","1.",",","2",".","]",")",",","...","b=ivy.array","(","[","3.",",","4.",",","5",".","]",")",")",">",">",">","mw","=","ivy.Container","(","a=ivy.array","(","[","0.",",","0.",",","0",".","]",")",",","...","b=ivy.array","(","[","0.",",","0.",",","0",".","]",")",")",">",">",">","vw","=","ivy.Container","(","a=ivy.array","(","[","0.",",","]",")",",","...","b=ivy.array","(","[","0.",",","]",")",")",">",">",">","step","=","ivy.array","(","[","3.4","]",")",">",">",">","beta1","=","0.87",">",">",">","beta2","=","0.976",">",">",">","epsilon","=","1e-5",">",">",">","adam_step_delta","=","dcdw.adam_step","(","mw",",","vw",",","step",",","beta1=beta1",",","beta2=beta2",",","...","epsilon=epsilon",")",">",">",">","print","(","adam_step_delta",")","(","{","a",":","ivy.array","(","[","0.",",","0.626",",","0.626","]",")",",","b",":","ivy.array","(","[","0.626",",","0.626",",","0.626","]",")","}",",","{","a",":","ivy.array","(","[","0.",",","0.13",",","0.26","]",")",",","b",":","ivy.array","(","[","0.39",",","0.52",",","0.65","]",")","}",",","{","a",":","ivy.array","(","[","0.",",","0.024",",","0.096","]",")",",","b",":","ivy.array","(","[","0.216",",","0.384",",","0.6","]",")","}",")"]
code: def adam_step(
      self: ivy.Container,
      mw: Union[ivy.Array, ivy.NativeArray, ivy.Container],
      vw: Union[ivy.Array, ivy.NativeArray, ivy.Container],
      step: Union[int, float, ivy.Container],
      /,
      *,
      beta1: Union[float, ivy.Container] = 0.9,
      beta2: Union[float, ivy.Container] = 0.999,
      epsilon: Union[float, ivy.Container] = 1e-7,
      out: Optional[ivy.Container] = None,
  ) -> ivy.Container:
      """ivy.Container instance method variant of ivy.adam_step. This method
      simply wraps the function, and so the docstring for ivy.adam_step also
      applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          Derivates of the cost c with respect to the weights ws, [dc/dw for w in ws].
      mw
          running average of the gradients.
      vw
          running average of second moments of the gradients.
      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).
      out
          optional output container, for writing the result to. It must have a shape
          that the inputs broadcast to.
  
      Returns
      -------
      ret
          The adam step delta.
  
      Examples
      --------
      With one :class:`ivy.Container` input:
  
      >>> dcdw = ivy.Container(a=ivy.array([0., 1., 2.]),
      ...                         b=ivy.array([3., 4., 5.]))
      >>> mw = ivy.array([1., 4., 9.])
      >>> vw = ivy.array([0.,])
      >>> step = ivy.array([3.4])
      >>> beta1 = 0.87
      >>> beta2 = 0.976
      >>> epsilon = 1e-5
      >>> adam_step_delta = dcdw.adam_step(mw, vw, step, beta1=beta1, beta2=beta2,
      ...                                     epsilon=epsilon)
      >>> print(adam_step_delta)
      ({
          a: ivy.array([6.49e+04, 1.74e+01, 1.95e+01]),
          b: ivy.array([2.02, 4.82, 8.17])
      }, {
          a: ivy.array([0.87, 3.61, 8.09]),
          b: ivy.array([1.26, 4., 8.48])
      }, {
          a: ivy.array([0., 0.024, 0.096]),
          b: ivy.array([0.216, 0.384, 0.6])
      })
  
      With multiple :class:`ivy.Container` inputs:
  
      >>> dcdw = ivy.Container(a=ivy.array([0., 1., 2.]),
      ...                        b=ivy.array([3., 4., 5.]))
      >>> mw = ivy.Container(a=ivy.array([0., 0., 0.]),
      ...                    b=ivy.array([0., 0., 0.]))
      >>> vw = ivy.Container(a=ivy.array([0.,]),
      ...                    b=ivy.array([0.,]))
      >>> step = ivy.array([3.4])
      >>> beta1 = 0.87
      >>> beta2 = 0.976
      >>> epsilon = 1e-5
      >>> adam_step_delta = dcdw.adam_step(mw, vw, step, beta1=beta1, beta2=beta2,
      ...                                     epsilon=epsilon)
      >>> print(adam_step_delta)
      ({
          a: ivy.array([0., 0.626, 0.626]),
          b: ivy.array([0.626, 0.626, 0.626])
      }, {
          a: ivy.array([0., 0.13, 0.26]),
          b: ivy.array([0.39, 0.52, 0.65])
      }, {
          a: ivy.array([0., 0.024, 0.096]),
          b: ivy.array([0.216, 0.384, 0.6])
      })
      """
      return ivy.adam_step(
          self,
          mw,
          vw,
          step,
          beta1=beta1,
          beta2=beta2,
          epsilon=epsilon,
          out=out,
      )
  
file_path: ivy/ivy/data_classes/container/gradients.py
imports: from typing import Optional, Union, List, Dict
  import ivy
  from ivy.data_classes.container.base import ContainerBase
label_desc: Use image node_id 3 for calling the _ContainerWithGradients obj's underlying member method code with example usage: obj.adam_step() and returns: ivy