code: def sum_dicts(dicts, dict_type=dict):
      summed_dict = dict_type()
      for d in dicts:
          for key, value in d.items():
              if key in summed_dict:
                  prev_value = summed_dict[key]
                  if isinstance(value, (dict, OrderedDict)):
                      summed_dict[key] = sum_dicts(
                          [prev_value, value], dict_type=type(value)
                      )
                  elif isinstance(value, numpy.ndarray):
                      summed_dict[key] = numpy.concatenate(
                          (prev_value, value)
                      )
                  else:
                      summed_dict[key] = prev_value + value
              else:
                  summed_dict[key] = value
      return summed_dict
  
imports: import copy
  import functools
  import os
  import random
  import subprocess
  import weakref
  from collections import OrderedDict
  from collections.abc import Mapping
  from typing import Any, Dict, TYPE_CHECKING
  import numpy
  import torch
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import PROC_COLUMN
  from ludwig.globals import DESCRIPTION_FILE_NAME
  from ludwig.utils import fs_utils
  from ludwig.utils.fs_utils import find_non_existing_dir_by_adding_suffix
label_desc: Use image node_id 3 for calling a global function with example usage: sum_dicts(dicts, dict_type) and returns: summed_dict