class_docstr: Estimator wrapper to add reporting to metadata storage after evaluation.
class_docstr_tok: ["Estimator","wrapper","to","add","reporting","to","metadata","storage","after","evaluation","."]
code: def evaluate(
      self,
      input_fn,
      steps=None,
      hooks=None,
      checkpoint_path=None,
      name=None,
  ):
      eval_results = super(Estimator, self).evaluate(
          input_fn=input_fn,
          steps=steps,
          hooks=hooks,
          checkpoint_path=checkpoint_path,
          name=name,
      )
      if self._metadata is not None:
          native_results = {
              k: v.item() for k, v in eval_results.items()
          }
          logging.info("Saving the following evaluation dictionary.")
          logging.info(native_results)
          self._metadata.report(native_results, self._model_dir)
      return eval_results
  
imports: import functools
  import inspect
  from absl import logging
  import keras_tuner
  from model_search import controller
  from model_search import hparam
  from model_search import loss_fns
  from model_search import metric_fns
  from model_search import task_manager
  from model_search.architecture import architecture_utils
  from model_search.generators import base_tower_generator
  from model_search.generators import trial_utils
  from model_search.meta import transfer_learning
  from model_search.metadata import ml_metadata_db
  from model_search.proto import phoenix_spec_pb2
  from model_search.proto import transfer_learning_spec_pb2
  import numpy
  import tensorflow.compat.v2
label_desc: Use image node_id 2 for calling the Estimator obj's underlying member method code with example usage: obj.evaluate(input_fn, steps, hooks, checkpoint_path, name) and returns: eval_results