class_docstr: RPN Head
  
  Args:
      anchor_generator (object): `AnchorGenerator` instance
      rpn_target_assign (object): `RPNTargetAssign` instance
      train_proposal (object): `GenerateProposals` instance for training
      test_proposal (object): `GenerateProposals` instance for testing
      num_classes (int): number of classes in rpn output
code: def _transform_input(
      self, rpn_cls_score, rpn_bbox_pred, anchor, anchor_var
  ):
      rpn_cls_score = fluid.layers.transpose(
          rpn_cls_score, perm=[0, 2, 3, 1]
      )
      rpn_bbox_pred = fluid.layers.transpose(
          rpn_bbox_pred, perm=[0, 2, 3, 1]
      )
      anchor = fluid.layers.reshape(anchor, shape=(-1, 4))
      anchor_var = fluid.layers.reshape(anchor_var, shape=(-1, 4))
      rpn_cls_score = fluid.layers.reshape(
          x=rpn_cls_score, shape=(0, -1, self.num_classes)
      )
      rpn_bbox_pred = fluid.layers.reshape(
          x=rpn_bbox_pred, shape=(0, -1, 4)
      )
      return rpn_cls_score, rpn_bbox_pred, anchor, anchor_var
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from paddle import fluid
  from paddle.fluid.param_attr import ParamAttr
  from paddle.fluid.initializer import Normal
  from paddle.fluid.regularizer import L2Decay
label_desc: Use image node_id 4 for calling the RPNHead obj's underlying member method code with example usage: obj._transform_input(rpn_cls_score, rpn_bbox_pred, anchor, anchor_var) and returns: rpn_cls_score,  rpn_bbox_pred,  anchor,  anchor_var