class_docstr: Region Proposal Network.
  
  Parameters
  ----------
  channels : int
      Channel number used in convolutional layers.
  strides : int or tuple of ints
      Feature map stride with respect to original image.
      This is usually the ratio between original image size and feature map size.
  base_size : int
      The width(and height) of reference anchor box.
  scales : iterable of float
      The areas of anchor boxes.
      We use the following form to compute the shapes of anchors:
  
      .. math::
  
          width_{anchor} = size_{base} \times scale \times \sqrt{ 1 / ratio}
          height_{anchor} = size_{base} \times scale \times \sqrt{ratio}
  
  ratios : iterable of float
      The aspect ratios of anchor boxes. We expect it to be a list or tuple.
  alloc_size : tuple of int
      Allocate size for the anchor boxes as (H, W).
      Usually we generate enough anchors for large feature map, e.g. 128x128.
      Later in inference we can have variable input sizes,
      at which time we can crop corresponding anchors from this large
      anchor map so we can skip re-generating anchors for each input.
  clip : float
      Clip bounding box target to this value.
  nms_thresh : float
      IOU threshold for NMS. It is used to remove overlapping proposals.
  train_pre_nms : int
      Filter top proposals before NMS in training.
  train_post_nms : int
      Return top proposal results after NMS in training.
  test_pre_nms : int
      Filter top proposals before NMS in testing.
  test_post_nms : int
      Return top proposal results after NMS in testing.
  min_size : int
      Proposals whose size is smaller than ``min_size`` will be discarded.
      multi_level : boolean
      Whether to extract feature from multiple level. This is used in FPN.
  multi_level : boolean, default is False.
      Whether to use multiple feature maps for RPN. eg. FPN.
  per_level_nms : boollean, default is False
      Whether to apply nms on each level's rois instead of applying nms after aggregation.
  minimal_opset : bool, default is `False`
      We sometimes add special operators to accelerate training/inference, however, for exporting
      to third party compilers we want to utilize most widely used operators.
      If `minimal_opset` is `True`, the network will use a minimal set of operators good
      for e.g., `TVM`.
code: def get_test_post_nms(self):
      return self._test_post_nms
  
file_path: gluon-cv/gluoncv/model_zoo/rcnn/rpn/rpn.py
imports: from __future__ import absolute_import
  import mxnet
  from mxnet import autograd
  from mxnet import gluon
  from mxnet.gluon import nn
  from .anchor import RPNAnchorGenerator
  from .proposal import RPNProposal
label_desc: Use image node_id 3 for calling the RPN obj's underlying member method code with example usage: obj.get_test_post_nms() and returns: self