code: def get_hparam_list(log_reader):
      run2tag = get_logs(log_reader, "hyper_parameters")
      runs = run2tag["runs"]
      results = []
  
      records_list = []
      for run in runs:
          run = (
              log_reader.name2tags[run]
              if run in log_reader.name2tags
              else run
          )
          log_reader.load_new_data()
          records = log_reader.data_manager.get_reservoir(
              "hyper_parameters"
          ).get_items(run, decode_tag("hparam"))
          records_list.append([records, run])
      records_list.sort(key=lambda x: x[0][0].timestamp)
      for records, run in records_list:
          hparams = {}
          for hparamInfo in records[0].hparam.hparamInfos:
              hparam_type = hparamInfo.WhichOneof("type")
              if "float_value" == hparam_type:
                  hparams[hparamInfo.name] = hparamInfo.float_value
              elif "string_value" == hparam_type:
                  hparams[hparamInfo.name] = hparamInfo.string_value
              elif "int_value" == hparam_type:
                  hparams[hparamInfo.name] = hparamInfo.int_value
              else:
                  raise TypeError(
                      "Invalid hparams param value type `%s`."
                      % hparam_type
                  )
  
          metrics = {}
          for metricInfo in records[0].hparam.metricInfos:
              try:
                  metrics_data = get_hparam_metric(
                      log_reader, run, metricInfo.name
                  )
                  metrics[metricInfo.name] = metrics_data[-1][-1]
              except:
                  logger.error(
                      "Missing data of metrics! Please make sure use add_scalar to log metrics data."
                  )
                  metrics[metricInfo.name] = None
  
          results.append(
              {"name": run, "hparams": hparams, "metrics": metrics}
          )
      return results
  
imports: import csv
  import io
  import math
  import os
  import sys
  import time
  from functools import partial
  import numpy
  from visualdl.component import components
  from visualdl.io import bfile
  from visualdl.server.log import logger
  from visualdl.utils.importance import calc_all_hyper_param_importance
  from visualdl.utils.list_util import duplicate_removal
  from visualdl.utils.string_util import decode_tag
  from visualdl.utils.string_util import encode_tag
label_desc: Use image node_id 12 for calling a global function with example usage: get_hparam_list(log_reader) and returns: results