code: def _evaluate_distributed(self, dataset):
      import tensorflow.keras.backend as K
  
      if hasattr(self.model, "targets"):
          model_targets = self.model.targets
      else:
          model_targets = self.model._targets
  
      return evaluate_string_metrics(
          sess=K.get_session(),
          string_metrics=self.metrics_names,
          dataset=dataset,
          inputs=self.model.inputs + model_targets,
          targets=model_targets,
          outputs=self.model.outputs,
          loss=self.model.total_loss,
      )
  
imports: import numpy
  from bigdl.optim.optimizer import MaxEpoch
  from zoo.tfpark.utils import evaluate_string_metrics
  from zoo.common import enable_multi_fs_save, enable_multi_fs_load
  from zoo.common.nncontext import getOrCreateSparkContext
  from zoo.tfpark.tf_dataset import TFNdarrayDataset, TFDataset, _standarize_feature_label_dataset, check_data_compatible
  from zoo.tfpark.tf_optimizer import TFOptimizer
  from zoo.tfpark.tf_predictor import TFPredictor
label_desc: Use image node_id 13 for calling the KerasModel obj's underlying member method code with example usage: obj._evaluate_distributed(dataset) and returns: evaluate_string_metrics