class_docstr: Computes LR as minimum of 1/beta and 1/(gamma * step) at each step.
  
  This is a required step for privacy guarantees.
docstr: Computes and returns the learning rate.
  
  Args:
    step: the current iteration number
  
  Returns:
    decayed learning rate to minimum of 1/beta and 1/(gamma * step) as per
    the BoltOn privacy requirements.
docstr_tok: ["Computes","and","returns","the","learning","rate",".","Args",":","step",":","the","current","iteration","number","Returns",":","decayed","learning","rate","to","minimum","of","1\/beta","and","1\/","(","gamma","*","step",")","as","per","the","BoltOn","privacy","requirements","."]
code: def __call__(self, step):
      """Computes and returns the learning rate.
  
      Args:
        step: the current iteration number
  
      Returns:
        decayed learning rate to minimum of 1/beta and 1/(gamma * step) as per
        the BoltOn privacy requirements.
      """
      if not self.is_init:
          raise AttributeError(
              "Please initialize the {0} Learning Rate Scheduler."
              "This is performed automatically by using the "
              "{1} as a context manager, "
              "as desired".format(
                  self.__class__.__name__, BoltOn.__class__.__name__
              )
          )
      dtype = self.beta.dtype
      one = tf.constant(1, dtype)
      return tf.math.minimum(
          tf.math.reduce_min(one / self.beta),
          one / (self.gamma * math_ops.cast(step, dtype)),
      )
  
imports: import tensorflow.compat.v1
  from tensorflow.compat.v1.python.keras.optimizer_v2 import optimizer_v2
  from tensorflow.compat.v1.python.ops import math_ops
  from tensorflow_privacy.privacy.bolt_on.losses import StrongConvexMixin
label_desc: Use image node_id 2 for calling the GammaBetaDecreasingStep obj's underlying member method code with example usage: obj.__call__(step) and returns: tf