code: def _str2metric(metric):
      # map metric str to function
      if isinstance(metric, str):
          metric_name = metric
          from bigdl.chronos.metric.forecast_metrics import (
              REGRESSION_MAP,
          )
  
          metric_func = REGRESSION_MAP[metric_name]
  
          def metric(y_label, y_predict):
              y_label = y_label.numpy()
              y_predict = y_predict.numpy()
              return metric_func(y_label, y_predict)
  
          metric.__name__ = metric_name
      return metric
  
imports: import torch
  import numpy
  from pandas import Timedelta
  from bigdl.chronos.forecaster.abstract import Forecaster
  from bigdl.chronos.forecaster.utils import read_csv, delete_folder
  from bigdl.chronos.metric.forecast_metrics import Evaluator
  from bigdl.chronos.model.autoformer import model_creator, loss_creator
  from torch.utils.data import TensorDataset, DataLoader
  from bigdl.chronos.model.autoformer.Autoformer import AutoFormer, _transform_config_to_namedtuple
  from bigdl.nano.utils.common import invalidInputError, invalidOperationError
  from bigdl.chronos.forecaster.utils import check_transformer_data
  from bigdl.chronos.pytorch import TSTrainer
  from bigdl.chronos.data import TSDataset
  from bigdl.nano.automl.hpo.space import Space
  from bigdl.chronos.forecaster.utils_hpo import GenericTSTransformerLightningModule, _config_has_search_space
  from bigdl.chronos.pytorch.context_manager import DummyForecasterContextManager, ForecasterContextManager
  from .utils_hpo import _format_metric_str
  import warnings
  from tempfile import TemporaryDirectory
  import os
label_desc: Use image node_id 1 for calling a global function with example usage: _str2metric(metric) and returns: metric, metric_func