docstr: ivy.Container instance method variant of ivy.lstm_update. This
  method simply wraps the function, and so the docstring for
  ivy.lstm_update also applies to this method with minimal changes.
  
  Parameters
  ----------
  init_h
      initial state tensor for the cell output *[batch_shape, out]*.
  init_c
      initial state tensor for the cell hidden state *[batch_shape, out]*.
  kernel
      weights for cell kernel *[in, 4 x out]*.
  recurrent_kernel
      weights for cell recurrent kernel *[out, 4 x out]*.
  bias
      bias for cell kernel *[4 x out]*. (Default value = None)
  recurrent_bias
      bias for cell recurrent kernel *[4 x out]*. (Default value = None)
  
  Returns
  -------
  ret
      hidden state for all timesteps *[batch_shape,t,out]* and cell state for last
      timestep *[batch_shape,out]*
  
  Examples
  --------
  >>> x = ivy.Container(
  ...     a=ivy.random_normal(shape=(5, 20, 3)),
  ...     b=ivy.random_normal(shape=(5, 20, 3))
  ... )
  >>> h_i = ivy.random_normal(shape=(5, 6))
  >>> c_i = ivy.random_normal(shape=(5, 6))
  
  >>> kernel = ivy.random_normal(shape=(3, 4 * 6))
  >>> rc = ivy.random_normal(shape=(6, 4 * 6))
  >>> x.lstm_update(h_i, c_i, kernel, rc)
  {
      a: (tuple(2), <class ivy.array.array.Array>, shape=[5, 20, 6]),
      b: (tuple(2), <class ivy.array.array.Array>, shape=[5, 20, 6])
  }
docstr_tok: ["ivy.Container","instance","method","variant","of","ivy.lstm_update",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.lstm_update","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","init_h","initial","state","tensor","for","the","cell","output","*","[","batch_shape",",","out","]","*",".","init_c","initial","state","tensor","for","the","cell","hidden","state","*","[","batch_shape",",","out","]","*",".","kernel","weights","for","cell","kernel","*","[","in",",","4","x","out","]","*",".","recurrent_kernel","weights","for","cell","recurrent","kernel","*","[","out",",","4","x","out","]","*",".","bias","bias","for","cell","kernel","*","[","4","x","out","]","*",".","(","Default","value","=","None",")","recurrent_bias","bias","for","cell","recurrent","kernel","*","[","4","x","out","]","*",".","(","Default","value","=","None",")","Returns","--","--","--","-","ret","hidden","state","for","all","timesteps","*","[","batch_shape",",","t",",","out","]","*","and","cell","state","for","last","timestep","*","[","batch_shape",",","out","]","*","Examples","--","--","--","--",">",">",">","x","=","ivy.Container","(","...","a=ivy.random_normal","(","shape=","(","5",",","20",",","3",")",")",",","...","b=ivy.random_normal","(","shape=","(","5",",","20",",","3",")",")","...",")",">",">",">","h_i","=","ivy.random_normal","(","shape=","(","5",",","6",")",")",">",">",">","c_i","=","ivy.random_normal","(","shape=","(","5",",","6",")",")",">",">",">","kernel","=","ivy.random_normal","(","shape=","(","3",",","4","*","6",")",")",">",">",">","rc","=","ivy.random_normal","(","shape=","(","6",",","4","*","6",")",")",">",">",">","x.lstm_update","(","h_i",",","c_i",",","kernel",",","rc",")","{","a",":","(","tuple","(","2",")",",","<","class","ivy.array.array.Array",">",",","shape=","[","5",",","20",",","6","]",")",",","b",":","(","tuple","(","2",")",",","<","class","ivy.array.array.Array",">",",","shape=","[","5",",","20",",","6","]",")","}"]
code: def lstm_update(
      self: ivy.Container,
      init_h: Union[ivy.Array, ivy.NativeArray, ivy.Container],
      init_c: Union[ivy.Array, ivy.NativeArray, ivy.Container],
      kernel: Union[ivy.Array, ivy.NativeArray, ivy.Container],
      recurrent_kernel: Union[
          ivy.Array, ivy.NativeArray, ivy.Container
      ],
      /,
      *,
      bias: Optional[
          Union[ivy.Array, ivy.NativeArray, ivy.Container]
      ] = None,
      recurrent_bias: Optional[
          Union[ivy.Array, ivy.NativeArray, ivy.Container]
      ] = None,
      key_chains: Optional[
          Union[List[str], Dict[str, str], ivy.Container]
      ] = None,
      to_apply: Union[bool, ivy.Container] = True,
      prune_unapplied: Union[bool, ivy.Container] = False,
      map_sequences: Union[bool, ivy.Container] = False,
  ) -> Tuple[ivy.Container, ivy.Container]:
      """ivy.Container instance method variant of ivy.lstm_update. This
      method simply wraps the function, and so the docstring for
      ivy.lstm_update also applies to this method with minimal changes.
  
      Parameters
      ----------
      init_h
          initial state tensor for the cell output *[batch_shape, out]*.
      init_c
          initial state tensor for the cell hidden state *[batch_shape, out]*.
      kernel
          weights for cell kernel *[in, 4 x out]*.
      recurrent_kernel
          weights for cell recurrent kernel *[out, 4 x out]*.
      bias
          bias for cell kernel *[4 x out]*. (Default value = None)
      recurrent_bias
          bias for cell recurrent kernel *[4 x out]*. (Default value = None)
  
      Returns
      -------
      ret
          hidden state for all timesteps *[batch_shape,t,out]* and cell state for last
          timestep *[batch_shape,out]*
  
      Examples
      --------
      >>> x = ivy.Container(
      ...     a=ivy.random_normal(shape=(5, 20, 3)),
      ...     b=ivy.random_normal(shape=(5, 20, 3))
      ... )
      >>> h_i = ivy.random_normal(shape=(5, 6))
      >>> c_i = ivy.random_normal(shape=(5, 6))
  
      >>> kernel = ivy.random_normal(shape=(3, 4 * 6))
      >>> rc = ivy.random_normal(shape=(6, 4 * 6))
      >>> x.lstm_update(h_i, c_i, kernel, rc)
      {
          a: (tuple(2), <class ivy.array.array.Array>, shape=[5, 20, 6]),
          b: (tuple(2), <class ivy.array.array.Array>, shape=[5, 20, 6])
      }
      """
      return self._static_lstm_update(
          self,
          init_h,
          init_c,
          kernel,
          recurrent_kernel,
          bias=bias,
          recurrent_bias=recurrent_bias,
          key_chains=key_chains,
          to_apply=to_apply,
          prune_unapplied=prune_unapplied,
          map_sequences=map_sequences,
      )
  
imports: from typing import Optional, Tuple, Union, List, Callable, Dict, Sequence
  from ivy.data_classes.container.base import ContainerBase
  import ivy
label_desc: Use image node_id 30 for calling the _ContainerWithLayers obj's underlying member method code with example usage: obj.lstm_update() and returns: self