code: def _test_estimator_graph_tf_dataset(self, dataset_creator):
      tf.reset_default_graph()
  
      model = SimpleModel()
  
      dataset = dataset_creator()
  
      est = Estimator.from_graph(
          inputs=[model.user, model.item],
          labels=[model.label],
          outputs=[model.logits],
          loss=model.loss,
          optimizer=tf.train.AdamOptimizer(),
          metrics={"loss": model.loss},
      )
      est.fit(
          data=dataset, batch_size=8, epochs=10, validation_data=dataset
      )
  
      result = est.evaluate(dataset, batch_size=4)
      assert "loss" in result
  
imports: import os
  import shutil
  import tempfile
  from unittest import TestCase
  import numpy
  import tensorflow
  from bigdl.orca.learn.trigger import SeveralIteration
  from pyspark.sql.context import SQLContext
  import bigdl.orca.data.pandas
  from bigdl.dllib.nncontext import init_nncontext
  from bigdl.orca import OrcaContext
  from bigdl.orca.data.tf.data import Dataset
  from bigdl.orca.learn.tf.estimator import Estimator
  from bigdl.dllib.utils.tf import save_tf_checkpoint, load_tf_checkpoint, get_checkpoint_state
label_desc: Use image node_id 14 for calling the TestEstimatorForGraph obj's underlying member method code with example usage: obj._test_estimator_graph_tf_dataset(dataset_creator) without return types