code: def tune(self):
      TimeInspector.set_time_mark()
      fmin(
          fn=self.objective,
          space=self.space,
          algo=tpe.suggest,
          max_evals=self.max_evals,
          show_progressbar=False,
      )
      self.logger.info(
          "Local best params: {} ".format(self.best_params)
      )
      TimeInspector.log_cost_time(
          "Finished searching best parameters in Tuner {}.".format(
              self.tuner_config["experiment"]["id"]
          )
      )
  
      self.save_local_best_params()
  
imports: import os
  import yaml
  import json
  import copy
  import pickle
  import logging
  import importlib
  import subprocess
  import pandas
  import numpy
  from abc import abstractmethod
  from ...log import get_module_logger, TimeInspector
  from hyperopt import fmin, tpe
  from hyperopt import STATUS_OK, STATUS_FAIL
label_desc: Use image node_id 2 for calling the Tuner obj's underlying member method code with example usage: obj.tune() without return types