code: def _learning_rate_decay(hparams, warmup_steps=0):
      """Learning rate decay multiplier."""
      scheme = hparams.learning_rate_decay_scheme
      warmup_steps = tf.to_float(warmup_steps)
      global_step = _global_step(hparams)
  
      if not scheme or scheme == "none":
          return tf.constant(1.0)
  
      tf.logging.info("Applying learning rate decay: %s.", scheme)
  
      if scheme == "exp":
          decay_steps = hparams.learning_rate_decay_steps
          p = (global_step - warmup_steps) / decay_steps
          if hparams.learning_rate_decay_staircase:
              p = tf.floor(p)
          return tf.pow(hparams.learning_rate_decay_rate, p)
  
      if scheme == "piecewise":
          return _piecewise_learning_rate(
              global_step,
              hparams.learning_rate_boundaries,
              hparams.learning_rate_multiples,
          )
  
      if scheme == "cosine":
          cycle_steps = hparams.learning_rate_cosine_cycle_steps
          cycle_position = global_step % (2 * cycle_steps)
          cycle_position = cycle_steps - tf.abs(
              cycle_steps - cycle_position
          )
          return 0.5 * (
              1 + tf.cos(np.pi * cycle_position / cycle_steps)
          )
  
      if scheme == "cyclelinear10x":
          # Cycle the rate linearly by 10x every warmup_steps, up and down.
          cycle_steps = warmup_steps
          cycle_position = global_step % (2 * cycle_steps)
          cycle_position = (
              tf.to_float(  # Normalize to the interval [-1, 1].
                  cycle_position - cycle_steps
              )
              / float(cycle_steps)
          )
          cycle_position = 1.0 - tf.abs(
              cycle_position
          )  # 0 to 1 and back to 0.
          return (
              cycle_position + 0.1
          ) * 3.0  # 10x difference each cycle (0.3-3).
  
      if scheme == "sqrt":
          return _legacy_sqrt_decay(global_step - warmup_steps)
  
      raise ValueError(
          "Unrecognized learning rate decay scheme: %s"
          % hparams.learning_rate_decay_scheme
      )
  
file_path: tensor2tensor/tensor2tensor/utils/learning_rate.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  from tensor2tensor.utils import mlperf_log
  import tensorflow.compat.v1
label_desc: Use image node_id 7 for calling a global function with example usage: _learning_rate_decay(hparams, warmup_steps) and returns: tf, tf, _piecewise_learning_rate, unknown, unknown, _legacy_sqrt_decay