docstr: Args:
      in_channels (int): number of input channels
      layers (list): feature dimensions of each FCN layer
      dilation (int): dilation rate of kernel
      norm_layer (callable, optional): Module specifying the normalization layer to use. Default: None
docstr_tok: ["Args",":","in_channels","(","int",")",":","number","of","input","channels","layers","(","list",")",":","feature","dimensions","of","each","FCN","layer","dilation","(","int",")",":","dilation","rate","of","kernel","norm_layer","(","callable",",","optional",")",":","Module","specifying","the","normalization","layer","to","use",".","Default",":","None"]
code: def __init__(
      self, opts, in_channels: int, layers: List, dilation: int
  ):
      """
      Args:
          in_channels (int): number of input channels
          layers (list): feature dimensions of each FCN layer
          dilation (int): dilation rate of kernel
          norm_layer (callable, optional): Module specifying the normalization layer to use. Default: None
      """
      blocks = []
      next_feature = in_channels
      for layer_features in layers:
          blocks.extend(
              [
                  ConvLayer2d(
                      opts=opts,
                      in_channels=next_feature,
                      out_channels=layer_features,
                      kernel_size=3,
                      stride=1,
                      dilation=dilation,
                      use_norm=False,
                      use_act=False,
                      bias=False,
                  ),
                  replace_syncbn_with_syncbnfp32(
                      opts=opts, num_features=layer_features
                  ),
                  nn.ReLU(inplace=False),
              ]
          )
          next_feature = layer_features
  
      super().__init__(*blocks)
  
      for layer in self.modules():
          if isinstance(layer, nn.Conv2d):
              initialize_conv_layer(
                  module=layer, init_method="kaiming_normal"
              )
  
imports: from typing import List, Tuple
  import torch
  from torch import Tensor, nn
  from cvnets.layers import ConvLayer2d, LinearLayer, TransposeConvLayer2d, get_normalization_layer
  from cvnets.misc.init_utils import initialize_conv_layer, initialize_fc_layer
label_desc: Use image node_id 1 to create a new MaskRCNNHeads object from inherited base classes: nn with example: obj = MaskRCNNHeads(opts, in_channels, layers, dilation)