code: def _init_net(self, ds: EncodedDs):
      self.net_class = TabTransformer
      self.model = TabTransformer(
          categories=(),  # unused, everything is numerical by now
          num_continuous=len(ds[0][0]),
          dim=self.train_args.get("dim", 32),
          dim_out=self.train_args.get("dim_out", len(ds[0][1])),
          depth=self.train_args.get("depth", 6),
          heads=self.train_args.get("heads", 8),
          attn_dropout=self.train_args.get(
              "attn_dropout", 0.1
          ),  # post-attention dropout
          ff_dropout=self.train_args.get(
              "ff_dropout", 0.1
          ),  # feed forward dropout
          mlp_hidden_mults=self.train_args.get(
              "mlp_hidden_mults", (4, 2)
          ),  # relative multiples of each hidden dimension of the last mlp to logits  # noqa
          # mlp_act=self.train_args.get('mlp_act', nn.ReLU()),                # TODO: import str from nn activations
      )
      self.model.device = get_device_from_name("")
      self.model.to(self.model.device)
  
file_path: lightwood/lightwood/mixer/tabtransformer.py
imports: from typing import Dict, Optional
  import torch
  from tab_transformer_pytorch import TabTransformer
  from lightwood.helpers.device import get_device_from_name
  from lightwood.data.encoded_ds import EncodedDs
  from lightwood.encoder.base import BaseEncoder
  from lightwood.mixer.neural import Neural
label_desc: Use image node_id 2 for calling the TabTransformerMixer obj's underlying member method code with example usage: obj._init_net(ds) without return types