parameters: (self,
                 learning_rate=0.1,
                 alpha=1.0,
                 beta=0.9,
                 sign_decay_fn=None,
                 use_locking=False,
                 name='AddSignOptimizer')
docstring: Constructs a new AddSignOptimizer object.
  
      Initialization:
  
      ```
      m_0 <- 0 (Initialize initial 1st moment vector)
      t <- 0 (Initialize timestep)
      ```
  
      Update:
  
      ```
      t <- t + 1
      m_t <- beta1 * m_{t-1} + (1 - beta1) * g
      sign_decay <- sign_decay_fn(t)
      update <- (alpha + sign_decay * sign(g) *sign(m)) * g
      variable <- variable - lr_t * update
      ```
  
      Example for AddSign-ld (AddSign with linear sign decay)
      ```
      decay_steps = 1000
      linear_decay_fn = sign_decays.get_linear_decay_fn(decay_steps)
      opt = AddSignOptimizer(learning_rate=0.1, sign_decay_fn=linear_decay_fn)
      ```
  
      Args:
        learning_rate: learning_rate used when taking a step.
        alpha: alpha used in optimizer.
        beta: decay used for computing the moving average m.
        sign_decay_fn: decay function applied to the sign(g) sign(m) quantity.
            Takes global_step as an argument. See sign_decay.py for some examples.
        use_locking: If True, use locks for update operations.
        name: Optional name for the operations created when applying gradients.
          Defaults to "AddSignOptimizer".
docstring_summary: Constructs a new AddSignOptimizer object.
docstring_tokens: Constructs a new AddSignOptimizer object .
function: def __init__(self,
                 learning_rate=0.1,
                 alpha=1.0,
                 beta=0.9,
                 sign_decay_fn=None,
                 use_locking=False,
                 name='AddSignOptimizer'):
      """Constructs a new AddSignOptimizer object.
  
      Initialization:
  
      ```
      m_0 <- 0 (Initialize initial 1st moment vector)
      t <- 0 (Initialize timestep)
      ```
  
      Update:
  
      ```
      t <- t + 1
      m_t <- beta1 * m_{t-1} + (1 - beta1) * g
      sign_decay <- sign_decay_fn(t)
      update <- (alpha + sign_decay * sign(g) *sign(m)) * g
      variable <- variable - lr_t * update
      ```
  
      Example for AddSign-ld (AddSign with linear sign decay)
      ```
      decay_steps = 1000
      linear_decay_fn = sign_decays.get_linear_decay_fn(decay_steps)
      opt = AddSignOptimizer(learning_rate=0.1, sign_decay_fn=linear_decay_fn)
      ```
  
      Args:
        learning_rate: learning_rate used when taking a step.
        alpha: alpha used in optimizer.
        beta: decay used for computing the moving average m.
        sign_decay_fn: decay function applied to the sign(g) sign(m) quantity.
            Takes global_step as an argument. See sign_decay.py for some examples.
        use_locking: If True, use locks for update operations.
        name: Optional name for the operations created when applying gradients.
          Defaults to "AddSignOptimizer".
      """
      super(AddSignOptimizer, self).__init__(use_locking, name)
      self._lr = learning_rate
      self._alpha = alpha
      self._beta = beta
  
      self._sign_decay_fn = sign_decay_fn
  
      # Tensor versions of the constructor arguments, created in _prepare().
      self._lr_t = None
      self._alpha_t = None
      self._beta_t = None
function_tokens: def __init__ ( self , learning_rate = 0.1 , alpha = 1.0 , beta = 0.9 , sign_decay_fn = None , use_locking = False , name = 'AddSignOptimizer' ) : super ( AddSignOptimizer , self ) . __init__ ( use_locking , name ) self . _lr = learning_rate self . _alpha = alpha self . _beta = beta self . _sign_decay_fn = sign_decay_fn # Tensor versions of the constructor arguments, created in _prepare(). self . _lr_t = None self . _alpha_t = None self . _beta_t = None