code: def make_default_exp_config(
      hparams: Dict[str, Any],
      scheduling_unit: int,
      searcher_metric: str,
      checkpoint_dir: Optional[str] = None,
      data: Optional[Dict[str, Any]] = None,
  ) -> Dict:
      if data is None:
          data = {}
  
      return {
          "scheduling_unit": scheduling_unit,
          "resources": {"native_parallel": False, "slots_per_trial": 1},
          "hyperparameters": hparams,
          "optimizations": {
              "mixed_precision": "O0",
              "aggregation_frequency": 1,
              "gradient_compression": False,
              "average_training_metrics": True,
              "auto_tune_tensor_fusion": False,
              "tensor_fusion_threshold": 100,
              "tensor_fusion_cycle_time": 3.5,
          },
          "data_layer": {"type": "shared_fs"},
          "checkpoint_policy": "best",
          "perform_initial_validation": False,
          "checkpoint_storage": {
              "type": "shared_fs",
              "host_path": checkpoint_dir or "/tmp",
          },
          "searcher": {
              "metric": searcher_metric,
              "smaller_is_better": True,
          },
          "min_checkpoint_period": {"batches": 0},
          "min_validation_period": {"batches": 0},
          "data": data,
      }
  
imports: import importlib
  import os
  import pathlib
  import re
  import unittest.mock
  from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Type
  import numpy
  import pytest
  from mypy_extensions import DefaultNamedArg
  import determined
  from determined import core, gpu, workload
  from determined.common import util
label_desc: Use image node_id 1 for calling a global function with example usage: make_default_exp_config(hparams, scheduling_unit, searcher_metric, checkpoint_dir, data) and returns: dict