code: def __init__(
      self,
      base_input_dim,
      base_output_dim,
      k,
      virtual_batch_size,
      bias=True,
  ):
      super().__init__()
      self.masker = LearnableLocality(input_dim=base_input_dim, k=k)
      self.fc = nn.Conv1d(
          base_input_dim * k,
          2 * k * base_output_dim,
          kernel_size=1,
          groups=k,
          bias=bias,
      )
      initialize_glu(
          self.fc,
          input_dim=base_input_dim * k,
          output_dim=2 * k * base_output_dim,
      )
      self.bn = GBN(2 * base_output_dim * k, virtual_batch_size)
      self.k = k
      self.base_output_dim = base_output_dim
  
file_path: pytorch_tabular/src/pytorch_tabular/models/danet/arch_blocks.py
imports: from functools import partial
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from pytorch_tabular.models.common.layers.activations import entmax15
  from pytorch_tabular.models.common.layers.batch_norm import GBN
label_desc: Use image node_id 1 to create a new AbstractLayer object from inherited base classes: nn with example: obj = AbstractLayer(base_input_dim, base_output_dim, k, virtual_batch_size, bias)