code: def qhadam_step(
      p,
      lr,
      mom,
      sqr_mom,
      sqr_avg,
      nu_1,
      nu_2,
      step,
      grad_avg,
      eps,
      **kwargs,
  ):
      debias1 = debias(mom, 1 - mom, step)
      debias2 = debias(sqr_mom, 1 - sqr_mom, step)
      p.data.addcdiv_(
          ((1 - nu_1) * p.grad.data) + (nu_1 * (grad_avg / debias1)),
          (
              ((1 - nu_2) * (p.grad.data) ** 2)
              + (nu_2 * (sqr_avg / debias2))
          ).sqrt()
          + eps,
          value=-lr,
      )
      return p
  
imports: from __future__ import annotations
  from .torch_basics import *
label_desc: Use image node_id 17 for calling a global function with example usage: qhadam_step(p, lr, mom, sqr_mom, sqr_avg, nu_1, nu_2, step, grad_avg, eps) and returns: p