code: def __init__(
      self,
      input_dim,
      abstlay_dim_1,
      abstlay_dim_2,
      k,
      virtual_batch_size,
      fix_input_dim,
      drop_rate,
      block_activation,
  ):
      super().__init__()
      self.conv1 = AbstractLayer(
          input_dim, abstlay_dim_1, k, virtual_batch_size
      )
      self.conv2 = AbstractLayer(
          abstlay_dim_1, abstlay_dim_2, k, virtual_batch_size
      )
  
      self.downsample = nn.Sequential(
          nn.Dropout(drop_rate),
          AbstractLayer(
              fix_input_dim, abstlay_dim_2, k, virtual_batch_size
          ),
      )
      self.block_activation = block_activation
  
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 BasicBlock object from inherited base classes: nn with example: obj = BasicBlock(input_dim, abstlay_dim_1, abstlay_dim_2, k, virtual_batch_size, fix_input_dim, drop_rate, block_activation)