class_docstr: Wrap multiple data collator functions together. The input functions will be applied
  to the corresponding input fields.
  
  Each data sample should be a list or tuple containing multiple attributes. The `i`th collate
  function stored in `Tuple` will be applied on the `i`th attribute. For example, each
  data sample is (nd_data, label). You can wrap two collate functions using
  `Tuple(DataCollate, LabelCollate)` to collate nd_data and label correspondingly.
  
  Parameters
  ----------
      fn (list or tuple or callable): The collate functions to wrap.
      *args (tuple of callable, optional): The additional collate functions to wrap.
class_docstr_tok: ["Wrap","multiple","data","collator","functions","together",".","The","input","functions","will","be","applied","to","the","corresponding","input","fields",".","Each","data","sample","should","be","a","list","or","tuple","containing","multiple","attributes",".","The","`","i","`","th","collate","function","stored","in","`","Tuple","`","will","be","applied","on","the","`","i","`","th","attribute",".","For","example",",","each","data","sample","is","(","nd_data",",","label",")",".","You","can","wrap","two","collate","functions","using","`","Tuple","(","DataCollate",",","LabelCollate",")","`","to","collate","nd_data","and","label","correspondingly",".","Parameters","--","--","--","--","--","fn","(","list","or","tuple","or","callable",")",":","The","collate","functions","to","wrap",".","*","args","(","tuple","of","callable",",","optional",")",":","The","additional","collate","functions","to","wrap","."]
code: def __init__(self, fn, *args):
      if isinstance(fn, (list, tuple)):
          if len(args) != 0:
              raise ValueError(
                  "Input pattern not understood. "
                  "The input of Tuple can be Tuple(A, B, C) "
                  "or Tuple([A, B, C]) or Tuple((A, B, C)). "
                  f"Received fn={str(fn)}, args={str(args)}"
              )
          self._fn = fn
      else:
          self._fn = (fn,) + args
      for i, ele_fn in enumerate(self._fn):
          if not hasattr(ele_fn, "__call__"):
              raise ValueError(
                  f"Collate functions must be callable! type(fn[{i}])={type(ele_fn)}"
              )
  
file_path: autogluon/multimodal/src/autogluon/multimodal/data/collator.py
imports: import math
  import warnings
  import numpy
  import torch
label_desc: Use image node_id 1 to create a new TupleCollator object  with example: obj = TupleCollator(fn)