class_docstr: Piecewise constant decay with warmup schedule.
docstr: Compute learning rate at given step.
docstr_tok: ["Compute","learning","rate","at","given","step","."]
code: def _get_learning_rate(self, step):
      """Compute learning rate at given step."""
      with tf.compat.v1.name_scope(
          self.name,
          "PiecewiseConstantDecayWithWarmup",
          [
              self.rescaled_lr,
              self.step_boundaries,
              self.lr_values,
              self.warmup_steps,
              self.compute_lr_on_cpu,
          ],
      ):
  
          def warmup_lr(step):
              return self.rescaled_lr * (
                  tf.cast(step, tf.float32)
                  / tf.cast(self.warmup_steps, tf.float32)
              )
  
          def piecewise_lr(step):
              return tf.compat.v1.train.piecewise_constant(
                  step, self.step_boundaries, self.lr_values
              )
  
          return tf.cond(
              step < self.warmup_steps,
              lambda: warmup_lr(step),
              lambda: piecewise_lr(step),
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl import flags
  import numpy
  import tensorflow
  from tensorflow.python.keras.optimizer_v2 import gradient_descent
  from utils.flags import core
  from utils.misc import keras_utils
label_desc: Use image node_id 3 for calling the PiecewiseConstantDecayWithWarmup obj's underlying member method code with example usage: obj._get_learning_rate(step) and returns: tf, unknown, tf