class_docstr: Region Proposal Network Head.
  
  Parameters
  ----------
  channels : int
      Channel number used in convolutional layers.
  anchor_depth : int
      Each FPN stage have one scale and three ratios,
      we can compute anchor_depth = len(scale) \times len(ratios)
docstr: Forward RPN Head.
  
  This HybridBlock will generate predicted values for cls and box.
  
  Parameters
  ----------
  x : mxnet.nd.NDArray or mxnet.symbol
      Feature tensor. With (1, C, H, W) shape
  
  Returns
  -------
  (rpn_scores, rpn_boxes, raw_rpn_scores, raw_rpn_boxes)
      Returns predicted scores and regions.
docstr_tok: ["Forward","RPN","Head",".","This","HybridBlock","will","generate","predicted","values","for","cls","and","box",".","Parameters","--","--","--","--","--","x",":","mxnet.nd.NDArray","or","mxnet.symbol","Feature","tensor",".","With","(","1",",","C",",","H",",","W",")","shape","Returns","--","--","--","-","(","rpn_scores",",","rpn_boxes",",","raw_rpn_scores",",","raw_rpn_boxes",")","Returns","predicted","scores","and","regions","."]
code: def hybrid_forward(self, F, x):
      """Forward RPN Head.
  
      This HybridBlock will generate predicted values for cls and box.
  
      Parameters
      ----------
      x : mxnet.nd.NDArray or mxnet.symbol
          Feature tensor. With (1, C, H, W) shape
  
      Returns
      -------
      (rpn_scores, rpn_boxes, raw_rpn_scores, raw_rpn_boxes)
          Returns predicted scores and regions.
  
      """
      # 3x3 conv with relu activation
      x = self.conv1(x)
      # (1, C, H, W)->(1, 9, H, W)->(1, H, W, 9)->(1, H*W*9, 1)
      raw_rpn_scores = (
          self.score(x).transpose(axes=(0, 2, 3, 1)).reshape((0, -1, 1))
      )
      # (1, H*W*9, 1)
      rpn_scores = F.sigmoid(F.stop_gradient(raw_rpn_scores))
      # (1, C, H, W)->(1, 36, H, W)->(1, H, W, 36)->(1, H*W*9, 4)
      raw_rpn_boxes = (
          self.loc(x).transpose(axes=(0, 2, 3, 1)).reshape((0, -1, 4))
      )
      # (1, H*W*9, 1)
      rpn_boxes = F.stop_gradient(raw_rpn_boxes)
      # return raw predictions as well in training for bp
      return rpn_scores, rpn_boxes, raw_rpn_scores, raw_rpn_boxes
  
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 2 for calling the RPNHead obj's underlying member method code with example usage: obj.hybrid_forward(F, x) and returns: rpn_scores,  rpn_boxes,  raw_rpn_scores,  raw_rpn_boxes