class_docstr: Outputs object detection proposals by applying estimated bounding-box
  transformations to a set of regular boxes (called "anchors").
code: def setup(
      self,
      bottom,
      top,
      pre_nms_topN=12000,
      post_nms_topN=2000,
      nms_thresh=0.7,
      min_size=16,
  ):
      self._feat_stride = 16
      anchor_scales = (8, 16, 32)
      self._anchors = generate_anchors(scales=np.array(anchor_scales))
      self._num_anchors = self._anchors.shape[0]
  
      self.pre_nms_topN = pre_nms_topN
      self.post_nms_topN = post_nms_topN
      self.nms_thresh = nms_thresh
      self.min_size = min_size
  
      if DEBUG:
          print("feat_stride: {}".format(self._feat_stride))
          print("anchors:")
          print(self._anchors)
  
file_path: neon/examples/faster-rcnn/tests/proposal_layer_ref.py
imports: from __future__ import print_function
  from builtins import object
  import numpy
  from generate_anchors import generate_anchors
  from util import bbox_transform_inv, clip_boxes, nms
label_desc: Use image node_id 1 for calling the PyCaffeProposalLayer obj's underlying member method code with example usage: obj.setup(bottom, top, pre_nms_topN, post_nms_topN, nms_thresh, min_size) without return types