class_docstr: Assign anchors to ground-truth targets. Produces anchor classification
  labels and bounding-box regression targets.
class_docstr_tok: ["Assign","anchors","to","ground-truth","targets",".","Produces","anchor","classification","labels","and","bounding-box","regression","targets","."]
code: def infer_outputs(self):
      # This is a necessary work around since after cloning the cloned inputs are just place holders without the proper shape
      if self._cfm_shape is None:
          self._cfm_shape = self.inputs[0].shape
      height, width = self._cfm_shape[-2:]
  
      if DEBUG:
          print("AnchorTargetLayer: height", height, "width", width)
  
      A = self._num_anchors
      # labels
      labelShape = (1, A, height, width)
      # Comment: this layer uses encoded labels, while in CNTK we mostly use one hot labels
      # bbox_targets
      bbox_target_shape = (1, A * 4, height, width)
      # bbox_inside_weights
      bbox_inside_weights_shape = (1, A * 4, height, width)
  
      return [
          output_variable(
              labelShape,
              self.inputs[0].dtype,
              self.inputs[0].dynamic_axes,
              name="objectness_target",
              needs_gradient=False,
          ),
          output_variable(
              bbox_target_shape,
              self.inputs[0].dtype,
              self.inputs[0].dynamic_axes,
              name="rpn_bbox_target",
              needs_gradient=False,
          ),
          output_variable(
              bbox_inside_weights_shape,
              self.inputs[0].dtype,
              self.inputs[0].dynamic_axes,
              name="rpn_bbox_inside_w",
              needs_gradient=False,
          ),
      ]
  
imports: import os
  from cntk import output_variable
  from cntk.ops.functions import UserFunction
  import yaml
  import numpy
  import numpy.random
  from utils.rpn.generate_anchors import generate_anchors
  from utils.rpn.bbox_transform import bbox_transform
  from utils.cython_modules.cython_bbox import bbox_overlaps
label_desc: Use image node_id 2 for calling the AnchorTargetLayer obj's underlying member method code with example usage: obj.infer_outputs() and returns: list