class_docstr: Adds a simple RPN Head with classification and regression heads
  
  Args:
      in_channels (int): number of channels of the input feature
      num_anchors (int): number of anchors to be predicted
      conv_depth (int, optional): number of convolutions
code: def __init__(
      self, opts, in_channels: int, num_anchors: int, conv_depth=1
  ) -> None:
      super().__init__()
      convs = []
      for _ in range(conv_depth):
          convs.extend(
              [
                  ConvLayer2d(
                      opts,
                      in_channels=in_channels,
                      out_channels=in_channels,
                      kernel_size=3,
                      stride=1,
                      use_norm=False,
                      use_act=False,
                      bias=False,
                  ),
                  replace_syncbn_with_syncbnfp32(
                      opts, num_features=in_channels
                  ),
                  nn.ReLU(inplace=False),
              ]
          )
      self.conv = nn.Sequential(*convs)
      self.cls_logits = ConvLayer2d(
          opts,
          in_channels=in_channels,
          out_channels=num_anchors,
          kernel_size=1,
          stride=1,
          use_norm=False,
          use_act=False,
          bias=True,
      )
      self.bbox_pred = ConvLayer2d(
          opts,
          in_channels=in_channels,
          out_channels=num_anchors * 4,
          kernel_size=1,
          stride=1,
          use_act=False,
          use_norm=False,
          bias=True,
      )
  
      for layer in self.modules():
          if isinstance(layer, nn.Conv2d):
              initialize_conv_layer(
                  module=layer, init_method="normal", std_val=0.01
              )
  
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 RPNHead object from inherited base classes: nn with example: obj = RPNHead(opts, in_channels, num_anchors, conv_depth)