docstr: Update nested variables container v by gradient descent step, using
  nested gradients container.
  
  Parameters
  ----------
  v
      Nested variables to update.
  grads
      Nested gradients to update.
  
  Returns
  -------
  ret
      The new updated variables container, following gradient descent step.
docstr_tok: ["Update","nested","variables","container","v","by","gradient","descent","step",",","using","nested","gradients","container",".","Parameters","--","--","--","--","--","v","Nested","variables","to","update",".","grads","Nested","gradients","to","update",".","Returns","--","--","--","-","ret","The","new","updated","variables","container",",","following","gradient","descent","step","."]
code: def _step(self, v: ivy.Container, grads: ivy.Container):
      """Update nested variables container v by gradient descent step, using
      nested gradients container.
  
      Parameters
      ----------
      v
          Nested variables to update.
      grads
          Nested gradients to update.
  
      Returns
      -------
      ret
          The new updated variables container, following gradient descent step.
      """
      return ivy.gradient_descent_update(
          v,
          grads,
          self._lr if isinstance(self._lr, float) else self._lr(),
          stop_gradients=self._stop_gradients,
      )
  
imports: import abc
  from typing import Union, Optional, Callable
  import ivy
label_desc: Use image node_id 2 for calling the SGD obj's underlying member method code with example usage: obj._step(v, grads) and returns: ivy