class_docstr: Schedule the learning rate according to some function of the
  current epoch index, current learning rate, and current train/val loss.
  
  :param schedule: (callable):
      should return a number of learning rates equal to the number
      of optimizer.param_groups. It should take the epoch index and
      **kwargs (or logs) as argument. **kwargs (or logs) will return
      the epoch logs such as mean training and validation loss from
      the epoch
code: def schedule_from_dict(self, epoch, logs=None):
      learn_rate = None
      for epoch_bound, learn_rate in self.schedule_dict.items():
          # epoch_bound is in units of "epochs"
          if not self.fractional_bounds:
              if epoch_bound < epoch:
                  return learn_rate
          # epoch_bound is in units of "cumulative percent of epochs"
          else:
              if epoch <= epoch_bound * logs["num_epoch"]:
                  return learn_rate
      warnings.warn(
          "Check the keys in the schedule dict.. Returning last value"
      )
      return learn_rate
  
imports: import warnings
  from .None import Callback
label_desc: Use image node_id 2 for calling the LRScheduler obj's underlying member method code with example usage: obj.schedule_from_dict(epoch, logs) and returns: learn_rate, learn_rate, learn_rate