code: def test_estimator_keras_learning_rate_schedule(self):
      tf.reset_default_graph()
  
      # loss = reduce_sum(w)
      # dloss/dw = 1
      model = self.create_model_lr_schedule(0.1, 1, 0.1)
  
      dataset = tf.data.Dataset.from_tensor_slices(
          (np.ones((16, 8)), np.zeros((16, 1)))
      )
      est = Estimator.from_keras(keras_model=model)
      weights_before = model.get_weights()[0]
      est.fit(
          data=dataset, batch_size=8, epochs=1, validation_data=dataset
      )
  
      sess = tf.keras.backend.get_session()
      iteartion = sess.run(model.optimizer.iterations)
      weights_after = model.get_weights()[0]
      first_step = weights_before - 0.1
      second_step = first_step - 0.01
  
      assert iteartion == 2
      assert np.allclose(second_step, weights_after)
  
imports: import shutil
  from unittest import TestCase
  import tensorflow
  from bigdl.orca import OrcaContext
  from bigdl.orca.learn.trigger import SeveralIteration
  from bigdl.orca.learn.tf.estimator import Estimator
  from bigdl.dllib.nncontext import *
  from bigdl.orca.learn.utils import convert_predict_rdd_to_dataframe
  from bigdl.orca.learn.tf.estimator import save_model_dir
label_desc: Use image node_id 16 for calling the TestEstimatorForKeras obj's underlying member method code with example usage: obj.test_estimator_keras_learning_rate_schedule() without return types