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 __init__(
      self,
      learning_rate=0.01,
      momentum=0.9,
      wd_lh=0.0,
      use_fused_step=True,
      **kwargs,
  ):
      super(Signum, self).__init__(
          learning_rate=learning_rate,
          use_fused_step=use_fused_step,
          **kwargs,
      )
      self.momentum = momentum
      self.wd_lh = wd_lh
  
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 1 to create a new Signum object from inherited base classes: Optimizer with example: obj = Signum(learning_rate, momentum, wd_lh, use_fused_step)