class_docstr: The Signum optimizer that takes the sign of gradient or momentum.
  
  The optimizer updates the weight by::
  
      rescaled_grad = rescale_grad * clip(grad, clip_gradient) + wd * weight
      state = momentum * state + (1-momentum)*rescaled_grad
      weight = (1 - lr * wd_lh) * weight - lr * sign(state)
  
  References
  ----------
  Jeremy Bernstein, Yu-Xiang Wang, Kamyar Azizzadenesheli & Anima Anandkumar. (2018).
  signSGD: Compressed Optimisation for Non-Convex Problems. In ICML'18.
  
  See: https://arxiv.org/abs/1802.04434
  
  For details of the update algorithm see
  :class:`~mxnet.ndarray.signsgd_update` and :class:`~mxnet.ndarray.signum_update`.
  
  This optimizer accepts the following parameters in addition to those accepted
  by :class:`.Optimizer`.
  
  Parameters
  ----------
  learning_rate : float, default 0.01
      The initial learning rate. If None, the optimization will use the
      learning rate from ``lr_scheduler``. If not None, it will overwrite
      the learning rate in ``lr_scheduler``. If None and ``lr_scheduler``
      is also None, then it will be set to 0.01 by default.
  momentum : float, optional
     The momentum value.
  wd_lh : float, optional
     The amount of decoupled weight decay regularization, see details in the original paper at:\
     https://arxiv.org/abs/1711.05101
  use_fused_step : bool, default True
      Whether or not to use fused kernels for optimizer.
      When use_fused_step=False, step is called,
      otherwise, fused_step is called.
code: def create_state(self, index, weight):
      momentum = None
      if self.momentum != 0.0:
          momentum = zeros(
              weight.shape,
              weight.context,
              dtype=weight.dtype,
              stype=weight.stype,
          )
      return momentum
  
file_path: mxnet/python/mxnet/optimizer/signum.py
imports: from __future__ import absolute_import
  from ..ndarray import zeros, clip
  from ..ndarray import signsgd_update, signum_update
  from .optimizer import Optimizer, register
label_desc: Use image node_id 2 for calling the Signum obj's underlying member method code with example usage: obj.create_state(index, weight) and returns: momentum