code: def fit_feat_encoders(self):
      if self.encoders is not None:
          self.feature_encoders = {}
          for c in self.columns:
              col = self.raw_data[c["name"]]
              enc = tab_transformer_encoder.__dict__[
                  self.encoders[c["type"]]
              ]()
  
              if c["type"] == "SCALAR" and col.nunique() < 32:
                  logger.log(
                      15,
                      f"Column {c['name']} shouldn't be encoded as SCALAR. Switching to CATEGORICAL.",
                  )
                  enc = tab_transformer_encoder.__dict__[
                      self.encoders["CATEGORICAL"]
                  ]()
              try:
                  enc.fit(col)
              except WontEncodeError as e:
                  logger.log(
                      15, f"Not encoding column '{c['name']}': {e}"
                  )
                  enc = NullEnc()
              self.feature_encoders[c["name"]] = enc
  
file_path: autogluon/tabular/src/autogluon/tabular/models/tab_transformer/utils.py
imports: import logging
  import torch
  from torch.utils.data import DataLoader, Dataset
  from .None import tab_transformer_encoder
  from .tab_transformer_encoder import NullEnc, WontEncodeError
label_desc: Use image node_id 3 for calling the TabTransformerDataset obj's underlying member method code with example usage: obj.fit_feat_encoders() without return types