def METHOD_NAME(self, epoch, logs=None):
    if not hasattr(self.model.optimizer, 'lr'):
        raise ValueError('Optimizer must have a "lr" attribute.')
    learning_rate = float(K.get_value(self.model.optimizer.lr))
    learning_rate = self.schedule(epoch)
    if not isinstance(learning_rate, (float, np.float32, np.float64)):
        raise ValueError('Learning rate should be float.')
    K.set_value(self.model.optimizer.lr, learning_rate)
    if self.verbose > 0:
        print('\nEpoch %05d: LearningRateScheduler reducing learning '
              'rate to %s.' % (epoch + 1, learning_rate))