code: def yogi_update_numpy(
      param,
      g_t,
      t,
      m,
      v,
      alpha=0.01,
      beta1=0.9,
      beta2=0.999,
      epsilon=1e-3,
      l1reg=0.0,
      l2reg=0.0,
  ):
      """Performs Yogi parameter update using numpy.
  
      Args:
        param: An numpy ndarray of the current parameter.
        g_t: An numpy ndarray of the current gradients.
        t: An numpy ndarray of the current time step.
        m: An numpy ndarray of the 1st moment estimates.
        v: An numpy ndarray of the 2nd moment estimates.
        alpha: A float value of the learning rate.
        beta1: A float value of the exponential decay rate for the 1st moment
          estimates.
        beta2: A float value of the exponential decay rate for the 2nd moment
           estimates.
        epsilon: A float of a small constant for numerical stability.
        l1reg: A float value of L1 regularization
        l2reg: A float value of L2 regularization
      Returns:
        A tuple of numpy ndarrays (param_t, m_t, v_t) representing the
        updated parameters for `param`, `m`, and `v` respectively.
      """
      beta1 = np.array(beta1, dtype=param.dtype)
      beta2 = np.array(beta2, dtype=param.dtype)
  
      alpha_t = alpha * np.sqrt(1 - beta2**t) / (1 - beta1**t)
  
      m_t = beta1 * m + (1 - beta1) * g_t
      g2_t = g_t * g_t
      v_t = v - (1 - beta2) * np.sign(v - g2_t) * g2_t
  
      per_coord_lr = alpha_t / (np.sqrt(v_t) + epsilon)
      param_t = param - per_coord_lr * m_t
  
      if l1reg > 0:
          param_t = (
              param_t - l1reg * per_coord_lr * np.sign(param_t)
          ) / (1 + l2reg * per_coord_lr)
          print(param_t.dtype)
          param_t[np.abs(param_t) < l1reg * per_coord_lr] = 0.0
      elif l2reg > 0:
          param_t = param_t / (1 + l2reg * per_coord_lr)
      return param_t, m_t, v_t
  
imports: import numpy
  import pytest
  import tensorflow
  from tensorflow_addons.optimizers import yogi
  from tensorflow_addons.utils import test_utils
label_desc: Use image node_id 1 for calling a global function with example usage: yogi_update_numpy(param, g_t, t, m, v, alpha, beta1, beta2, epsilon, l1reg, l2reg) and returns: param_t,  m_t,  v_t