class_docstr: For 1bit compression.
class_docstr_tok: ["For","1bit","compression","."]
docstr: Returns the tensor added with additional momentum for wd
  m_t = \mu * m_{t-1} + wd * x_t
  x_{t+1} = x_t - \eta_t (tensor + \mu m_t + wd * x_t)
docstr_tok: ["Returns","the","tensor","added","with","additional","momentum","for","wd","m_t","=","\\mu","*","m_","{","t-1","}","+","wd","*","x_t","x_","{","t+1","}","=","x_t","-","\\eta_t","(","tensor","+","\\mu","m_t","+","wd","*","x_t",")"]
code: def decompress(self, tensor, ctx, *args, **kwargs):
      """Returns the tensor added with additional momentum for wd
      m_t = \mu * m_{t-1} + wd * x_t
      x_{t+1} = x_t - \eta_t (tensor + \mu m_t + wd * x_t)
      """
      if "x" not in kwargs:
          raise ValueError("x is missing")
  
      x = kwargs["x"].astype(tensor.dtype, copy=False)
  
      if not self.inited:
          self.cache = nd.zeros_like(tensor)
          if size(tensor.shape) >= self.threshold:
              self.mom = nd.zeros_like(tensor)
              self.wdmom = True
          self.inited = True
  
      # weight decay
      nd._internal._mul_scalar(x, self.wd, out=self.cache)
  
      # weight decay momentum
      if self.wdmom:
          self.mom += self.cache
          nd._internal._mul_scalar(self.mom, self.mu, out=self.mom)
          tensor += self.mom
  
      tensor += self.cache
      return self.compressor.decompress(tensor, ctx, *args, **kwargs)
  
imports: from functools import reduce
  import mxnet.ndarray
label_desc: Use image node_id 3 for calling the WeightDecayMomentumAdapter obj's underlying member method code with example usage: obj.decompress(tensor, ctx) and returns: self