class_docstr: Prepare categorical data for the model specified by "prefix".
  For multiple models requiring categorical data, we need to create a CategoricalProcessor
  for each related model so that they will have independent input.
docstr: Collate individual samples into a batch. It stacks categorical features of
  each column independently. This function will be used when creating Pytorch DataLoader.
  
  Returns
  -------
  A dictionary containing one model's collator function for categorical features.
code: def collate_fn(
      self, categorical_column_names: Optional[List] = None
  ) -> Dict:
      """
      Collate individual samples into a batch. It stacks categorical features of
      each column independently. This function will be used when creating Pytorch DataLoader.
  
      Returns
      -------
      A dictionary containing one model's collator function for categorical features.
      """
      fn = {}
      if self.requires_column_info:
          assert (
              categorical_column_names
          ), "Empty categorical column names."
          for col_name in categorical_column_names:
              fn[
                  f"{self.categorical_column_prefix}_{col_name}"
              ] = StackCollator()
  
      fn[self.categorical_key] = TupleCollator(
          [
              StackCollator()
              for _ in range(len(categorical_column_names))
          ]
      )
  
      return fn
  
file_path: autogluon/multimodal/src/autogluon/multimodal/data/process_categorical.py
imports: from typing import Any, Dict, List, Optional, Union
  import numpy
  from torch import nn
  from ..constants import CATEGORICAL, COLUMN
  from .collator import StackCollator, TupleCollator
label_desc: Use image node_id 4 for calling the CategoricalProcessor obj's underlying member method code with example usage: obj.collate_fn(categorical_column_names) and returns: fn