docstr: Evaluate model.
  
  :param data: evaluation data.
  :param batch_size: batch size per thread. Default: 32.
  :param feature_cols: feature column names if train data is Spark DataFrame.
  :param label_cols: label column names if train data is Spark DataFrame.
  :return: evaluation result as a dictionary of {'metric name': metric value}
docstr_tok: ["Evaluate","model",".",":","param","data",":","evaluation","data",".",":","param","batch_size",":","batch","size","per","thread",".","Default",":","32.",":","param","feature_cols",":","feature","column","names","if","train","data","is","Spark","DataFrame",".",":","param","label_cols",":","label","column","names","if","train","data","is","Spark","DataFrame",".",":","return",":","evaluation","result","as","a","dictionary","of","{","'metric","name","'",":","metric","value","}"]
code: def evaluate(
      self, data, batch_size=32, feature_cols=None, label_cols=None
  ):
      """
      Evaluate model.
  
      :param data: evaluation data.
      :param batch_size: batch size per thread. Default: 32.
      :param feature_cols: feature column names if train data is Spark DataFrame.
      :param label_cols: label column names if train data is Spark DataFrame.
      :return: evaluation result as a dictionary of {'metric name': metric value}
      """
      raise NotImplementedError
  
file_path: analytics-zoo/pyzoo/zoo/orca/learn/spark_estimator.py
imports: from abc import abstractmethod
  from zoo.orca.learn.base_estimator import BaseEstimator
label_desc: Use image node_id 3 for calling the Estimator obj's underlying member method code with example usage: obj.evaluate(data, batch_size, feature_cols, label_cols) without return types