code: def adam_step(
      p, lr, mom, step, sqr_mom, grad_avg, sqr_avg, eps, **kwargs
  ):
      "Step for Adam with `lr` on `p`"
      debias1 = debias(mom, 1 - mom, step)
      debias2 = debias(sqr_mom, 1 - sqr_mom, step)
      p.data.addcdiv_(
          grad_avg,
          (sqr_avg / debias2).sqrt() + eps,
          value=-lr / debias1,
      )
      return p
  
imports: from __future__ import annotations
  from .torch_basics import *
label_desc: Use image node_id 13 for calling a global function with example usage: adam_step(p, lr, mom, step, sqr_mom, grad_avg, sqr_avg, eps) and returns: p