class_docstr: Feature extraction in RPN head
  
  Args:
      in_channel (int): Input channel
      out_channel (int): Output channel
class_docstr_tok: ["Feature","extraction","in","RPN","head","Args",":","in_channel","(","int",")",":","Input","channel","out_channel","(","int",")",":","Output","channel"]
code: def __init__(self, in_channel=1024, out_channel=1024):
      super(RPNFeat, self).__init__()
      # rpn feat is shared with each level
      self.rpn_conv = nn.Conv2D(
          in_channels=in_channel,
          out_channels=out_channel,
          kernel_size=3,
          padding=1,
          weight_attr=paddle.ParamAttr(
              initializer=Normal(mean=0.0, std=0.01)
          ),
      )
      self.rpn_conv.skip_quant = True
  
file_path: PaddleDetection/ppdet/modeling/proposal_generator/rpn_head.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn.initializer import Normal
  from ppdet.core.workspace import register
  from .anchor_generator import AnchorGenerator
  from .target_layer import RPNTargetAssign
  from .proposal_generator import ProposalGenerator
  from ..cls_utils import _get_class_default_kwargs
label_desc: Use image node_id 1 to create a new RPNFeat object from inherited base classes: nn with example: obj = RPNFeat(in_channel, out_channel)