code: def test_estimator_keras_save_load(self):
      import bigdl.orca.data.pandas
  
      tf.reset_default_graph()
  
      model = self.create_model()
      file_path = os.path.join(self.resource_path, "orca/learn/ncf.csv")
      data_shard = bigdl.orca.data.pandas.read_csv(file_path)
  
      def transform(df):
          result = {
              "x": (
                  df["user"].to_numpy().reshape([-1, 1]),
                  df["item"].to_numpy().reshape([-1, 1]),
              ),
              "y": df["label"].to_numpy(),
          }
          return result
  
      data_shard = data_shard.transform_shard(transform)
  
      est = Estimator.from_keras(keras_model=model)
      est.fit(
          data=data_shard,
          batch_size=8,
          epochs=10,
          validation_data=data_shard,
      )
  
      eval_result = est.evaluate(data_shard)
      print(eval_result)
  
      temp = tempfile.mkdtemp()
      model_path = os.path.join(temp, "test.h5")
      est.save_keras_model(model_path)
  
      tf.reset_default_graph()
  
      est = Estimator.load_keras_model(model_path)
  
      data_shard = bigdl.orca.data.pandas.read_csv(file_path)
  
      def transform(df):
          result = {
              "x": (
                  df["user"].to_numpy().reshape([-1, 1]),
                  df["item"].to_numpy().reshape([-1, 1]),
              ),
          }
          return result
  
      data_shard = data_shard.transform_shard(transform)
      predictions = est.predict(data_shard).collect()
      assert predictions[0]["prediction"].shape[1] == 2
      shutil.rmtree(temp)
  
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 14 for calling the TestEstimatorForKeras obj's underlying member method code with example usage: obj.test_estimator_keras_save_load() and returns: result, result