code: def __init__(
      self,
      model_config: AttrDict,
      input_dim: int,
      output_dim: int,
      use_bias: bool,
      use_bn: bool,
      use_relu: bool,
      use_dropout: bool,
  ):
      super().__init__()
      self.input_dim = input_dim
      self.output_dim = output_dim
      layers = []
      layers.append(nn.Linear(input_dim, output_dim, bias=use_bias))
      if use_bn:
          layers.append(
              nn.BatchNorm1d(
                  output_dim,
                  eps=model_config.HEAD.BATCHNORM_EPS,
                  momentum=model_config.HEAD.BATCHNORM_MOMENTUM,
              )
          )
      if use_relu:
          layers.append(nn.ReLU(inplace=True))
      if use_dropout:
          layers.append(nn.Dropout())
      self.mlp_res_block = nn.Sequential(*layers)
  
file_path: vissl/vissl/models/heads/mlp_res.py
imports: from typing import List
  import torch
  import torch.nn
  from vissl.config import AttrDict
  from vissl.models.heads import register_model_head
label_desc: Use image node_id 1 to create a new MLPResidualBlock object from inherited base classes: nn with example: obj = MLPResidualBlock(model_config, input_dim, output_dim, use_bias, use_bn, use_relu, use_dropout)