class_docstr: Callback to update learning rate on every batch (not epoch boundaries).
  
  N.B. Only support Keras optimizers, not TF optimizers.
  
  Attributes:
      schedule: a function that takes an epoch index and a batch index as input
          (both integer, indexed from 0) and returns a new learning rate as
          output (float).
code: def __init__(self, schedule, batch_size, steps_per_epoch):
      super(LearningRateBatchScheduler, self).__init__()
      self.schedule = schedule
      self.steps_per_epoch = steps_per_epoch
      self.batch_size = batch_size
      self.epochs = -1
      self.prev_lr = -1
  
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 1 to create a new LearningRateBatchScheduler object from inherited base classes: tf.keras.callbacks with example: obj = LearningRateBatchScheduler(schedule, batch_size, steps_per_epoch)