class_docstr: Outputs object detection proposals by applying estimated bounding-box
  transformations to a set of regular boxes (called "anchors").
class_docstr_tok: ["Outputs","object","detection","proposals","by","applying","estimated","bounding-box","transformations","to","a","set","of","regular","boxes","(","called","``","anchors","''",")","."]
code: def infer_outputs(self):
      # rois blob: holds R regions of interest, each is a 5-tuple
      # (n, x1, y1, x2, y2) specifying an image batch index n and a
      # rectangle (x1, y1, x2, y2)
      # for CNTK the proposal shape is [4 x roisPerImage], and mirrored in Python
      proposalShape = (FreeDimension, 4)
  
      return [
          output_variable(
              proposalShape,
              self.inputs[0].dtype,
              self.inputs[0].dynamic_axes,
              name="rpn_rois_raw",
              needs_gradient=False,
          )
      ]
  
file_path: CNTK/Examples/Image/Detection/utils/rpn/proposal_layer.py
imports: from cntk import output_variable, FreeDimension
  from cntk.ops.functions import UserFunction
  import numpy
  import yaml
  from utils.rpn.generate_anchors import generate_anchors
  from utils.rpn.bbox_transform import bbox_transform_inv, clip_boxes
  from utils.nms_wrapper import nms
label_desc: Use image node_id 2 for calling the ProposalLayer obj's underlying member method code with example usage: obj.infer_outputs() and returns: list