class_docstr: Wrap multiple batchify functions together and apply it to merge inputs from a dict.
  The generated batch samples are stored as a dict with the same keywords.
  Each data sample should be a dict and the fn corresponds to `key` will be applied on the
  input with the keyword `key`.
  For example, each data sample is {'data': nd_data, 'label': nd_label}.
  You can merge the data and labels using
  `Dict({'data': DataBatchify, 'label': LabelBatchify})` to batchify the nd_data and nd_label.
  Parameters
  ----------
  fn_dict
      A dictionary that contains the key-->batchify function mapping.
  Examples
  --------
  >>> from codel.data.batchify import Dict, Pad, Stack
  >>> a = {'data': [1, 2, 3, 4], 'label': 0}
  >>> b = {'data': [5, 7], 'label': 1}
  >>> c = {'data': [1, 2, 3, 4, 5, 6, 7], 'label': 0}
  >>> batchify_fn = Dict({'data': Pad(), 'label': Stack()})
  >>> sample = batchify_fn([a, b, c])
  >>> sample['data']
  <BLANKLINE>
  [[1. 2. 3. 4. 0. 0. 0.]
   [5. 7. 0. 0. 0. 0. 0.]
   [1. 2. 3. 4. 5. 6. 7.]]
  <NDArray 3x7 @cpu_shared(0)>
  >>> sample['label']
  <BLANKLINE>
  [0 1 0]
  <NDArray 3 @cpu_shared(0)>
docstr: Parameters
  ----------
  data
      The samples to batchify. Each sample should be a dictionary
  Returns
  -------
  ret
      The resulting dictionary that stores the merged samples.
docstr_tok: ["Parameters","--","--","--","--","--","data","The","samples","to","batchify",".","Each","sample","should","be","a","dictionary","Returns","--","--","--","-","ret","The","resulting","dictionary","that","stores","the","merged","samples","."]
code: def __call__(self, data: t_List[t_Dict]) -> t_Dict:
      """
      Parameters
      ----------
      data
          The samples to batchify. Each sample should be a dictionary
      Returns
      -------
      ret
          The resulting dictionary that stores the merged samples.
      """
      ret = dict()
      for k, ele_fn in self._fn_dict.items():
          ret[k] = ele_fn([ele[k] for ele in data])
      return ret
  
imports: import math
  from typing import AnyStr
  from typing import Callable
  from typing import Dict
  from typing import List
  from typing import NamedTuple
  from typing import Tuple
  from typing import Union
  import numpy
  import torch
  from ..utils import to_torch_dtype
label_desc: Use image node_id 2 for calling the Dict obj's underlying member method code with example usage: obj.__call__(data) and returns: ret