code: def weight_decay(self, grads, decay_rate):
      decay_rate = np.asarray(decay_rate, dtype=np.float32)
      if self.weight_decay_is_fused():
          self.weight_decay_rate = decay_rate
          return
      if decay_rate == 0:
          return
      for key, grad in iteritems(grads):
          param = self.params[key]
          grad[...] = grad + decay_rate * param
  
imports: from six import iteritems
  import nnabla
  import nnabla.solvers
  from nnabla.testing import assert_allclose
  import numpy
  from collections import OrderedDict
  import os
label_desc: Use image node_id 6 for calling the RefSolver obj's underlying member method code with example usage: obj.weight_decay(grads, decay_rate) without return types