class_docstr: This is the current default pretext task module.
  
  Functionality:
  
      self.get:
          inputs: (data, target) (target will often be None)
          outputs: (pretext_data, pretext_target)
  
          called before the forward pass through the TabTransformer to create the
          input and label for a BERT-style pretext task.
  
      self.forward:
          inputs: out (embedding for TabTransformer), target (pretext task label)
          outputs: loss, % accuracy on pretext task
  
          given the embedding it passes it through a classifier which learns to
          predict the pretext label.
code: def __init__(
      self,
      cat_feat_origin_cards,
      device,
      hidden_dim,
      replacement_noise="random",
      p_replace=0.3,
  ):
      super().__init__()
      self.cat_feat_origin_cards = cat_feat_origin_cards
      self.device = device
      self.hidden_dim = hidden_dim
      self.loss_funct = nn.CrossEntropyLoss()
      self.p_replace = p_replace
      self.predicters = nn.ModuleList()
      self.n_cat_feats = len(cat_feat_origin_cards)
      self.replacement_noise = replacement_noise
  
      for col in range(self.n_cat_feats):
          lin = nn.Linear(self.hidden_dim, 2)
          self.predicters.append(lin)
  
file_path: autogluon/tabular/src/autogluon/tabular/models/tab_transformer/pretexts.py
imports: from copy import deepcopy
  import numpy
  import torch
  import torch.nn
  from autogluon.core.constants import REGRESSION
label_desc: Use image node_id 1 to create a new BERTPretext object from inherited base classes: nn with example: obj = BERTPretext(cat_feat_origin_cards, device, hidden_dim, replacement_noise, p_replace)