code: def __load(self):
      # load .experiment file
      with open(self.__get_log_name(), "r") as file:
          data = json.load(file)
          self.name = data["name"]
          self.version = data["version"]
          self.autosave = data["autosave"]
          self.created_at = data["created_at"]
          self.description = data["description"]
          self.exp_hash = data["exp_hash"]
  
      # load .tags file
      meta_tags_path = (
          self.get_data_path(self.name, self.version) + "/meta_tags.csv"
      )
      df = pd.read_csv(meta_tags_path)
      self.tags_list = df.to_dict(orient="records")
      self.tags = {}
      for d in self.tags_list:
          k, v = d["key"], d["value"]
          self.tags[k] = v
  
      # load metrics
      metrics_file_path = (
          self.get_data_path(self.name, self.version) + "/metrics.csv"
      )
      try:
          df = pd.read_csv(metrics_file_path)
          self.metrics = df.to_dict(orient="records")
  
          # remove nans
          for metric in self.metrics:
              to_delete = []
              for k, v in metric.items():
                  try:
                      if np.isnan(v):
                          to_delete.append(k)
                  except Exception as e:
                      pass
  
              for k in to_delete:
                  del metric[k]
      except Exception as e:
          # metrics was empty...
          self.metrics = []
  
imports: import contextlib
  import json
  import os
  import shutil
  from datetime import datetime
  import numpy
  import pandas
  from imageio import imwrite
  from tensorboard.compat.proto.event_pb2 import Event
  from tensorboard.compat.proto.event_pb2 import SessionLog
  from torch.utils.tensorboard import SummaryWriter, FileWriter
label_desc: Use image node_id 17 for calling the Experiment obj's underlying member method code with example usage: obj.__load() without return types