code: def __init__(
      self,
      n_continuous_features: int,
      cat_embedding_dims: list,
      n_layers: int,
      abstlay_dim_1: int,
      abstlay_dim_2: int,
      k: int,
      dropout_rate: float,
      block_activation: nn.Module,
      virtual_batch_size: int,
      embedding_dropout: float,
      batch_norm_continuous_input: bool,
  ):
      super().__init__()
      self.cat_embedding_dims = cat_embedding_dims
      self.n_continuous_features = n_continuous_features
      self.input_dim = n_continuous_features + sum(
          [y for x, y in cat_embedding_dims]
      )
      self.n_layers = n_layers
      self.abstlay_dim_1 = abstlay_dim_1
      self.abstlay_dim_2 = abstlay_dim_2
      self.k = k
      self.dropout_rate = dropout_rate
      self.block_activation = block_activation
      self.virtual_batch_size = virtual_batch_size
      self.batch_norm_continuous_input = batch_norm_continuous_input
      self.embedding_dropout = embedding_dropout
  
      self.output_dim = self.abstlay_dim_2
      self._build_network()
  
file_path: pytorch_tabular/src/pytorch_tabular/models/danet/danet.py
imports: import warnings
  import torch
  import torch.nn
  from omegaconf import DictConfig
  from pytorch_tabular.models.common.layers.embeddings import Embedding1dLayer
  from ..base_model import BaseModel
  from .arch_blocks import BasicBlock
label_desc: Use image node_id 1 to create a new DANetBackbone object from inherited base classes: nn with example: obj = DANetBackbone(n_continuous_features, cat_embedding_dims, n_layers, abstlay_dim_1, abstlay_dim_2, k, dropout_rate, block_activation, virtual_batch_size, embedding_dropout, batch_norm_continuous_input)