code: def __init__(self, in_units: int, output_dim: int, config, **kwargs):
      # Linear Layers
      _layers = []
      _curr_units = in_units
      for units in config.layers.split("-"):
          try:
              int(units)
          except ValueError:
              if units == "":
                  continue
              else:
                  raise ValueError(
                      f"Invalid units {units} in layers {config.layers}"
                  )
          _layers.extend(
              _linear_dropout_bn(
                  config.activation,
                  config.initialization,
                  config.use_batch_norm,
                  _curr_units,
                  int(units),
                  config.dropout,
              )
          )
          _curr_units = int(units)
      # Appending Final Output
      _layers.append(nn.Linear(_curr_units, output_dim))
      linear_layers = nn.Sequential(*_layers)
      _initialize_layers(
          config.activation, config.initialization, linear_layers
      )
      super().__init__(
          layers=linear_layers,
          config_template=head_config.LinearHeadConfig,
      )
  
imports: import math
  import torch
  from omegaconf import DictConfig
  from torch import nn
  from torch.autograd import Variable
  from torch.distributions import Categorical
  from pytorch_tabular.models.common.heads import config
  from pytorch_tabular.utils import _initialize_layers, _linear_dropout_bn
label_desc: Use image node_id 1 to create a new LinearHead object from inherited base classes: Head with example: obj = LinearHead(in_units, output_dim, config)