class_docstr: Head network for classification and bounding box refinement. Performs RoiAlign, processes resulting features through a
  shared convolutional base and finally branches off the classifier- and regression head.
docstr: :param x: input feature maps (b, in_channels, y, x, (z))
  :param rois: normalized box coordinates as proposed by the RPN to be forwarded through
  the second stage (n_proposals, (y1, x1, y2, x2, (z1), (z2), batch_ix). Proposals of all batch elements
  have been merged to one vector, while the origin info has been stored for re-allocation.
  :return: mrcnn_class_logits (n_proposals, n_head_classes)
  :return: mrcnn_bbox (n_proposals, n_head_classes, 2 * dim) predicted corrections to be applied to proposals for refinement.
docstr_tok: [":","param","x",":","input","feature","maps","(","b",",","in_channels",",","y",",","x",",","(","z",")",")",":","param","rois",":","normalized","box","coordinates","as","proposed","by","the","RPN","to","be","forwarded","through","the","second","stage","(","n_proposals",",","(","y1",",","x1",",","y2",",","x2",",","(","z1",")",",","(","z2",")",",","batch_ix",")",".","Proposals","of","all","batch","elements","have","been","merged","to","one","vector",",","while","the","origin","info","has","been","stored","for","re-allocation",".",":","return",":","mrcnn_class_logits","(","n_proposals",",","n_head_classes",")",":","return",":","mrcnn_bbox","(","n_proposals",",","n_head_classes",",","2","*","dim",")","predicted","corrections","to","be","applied","to","proposals","for","refinement","."]
code: def forward(self, x, rois):
      """
      :param x: input feature maps (b, in_channels, y, x, (z))
      :param rois: normalized box coordinates as proposed by the RPN to be forwarded through
      the second stage (n_proposals, (y1, x1, y2, x2, (z1), (z2), batch_ix). Proposals of all batch elements
      have been merged to one vector, while the origin info has been stored for re-allocation.
      :return: mrcnn_class_logits (n_proposals, n_head_classes)
      :return: mrcnn_bbox (n_proposals, n_head_classes, 2 * dim) predicted corrections to be applied to proposals for refinement.
      """
      x = pyramid_roi_align(
          x, rois, self.pool_size, self.pyramid_levels, self.dim
      )
      x = self.conv1(x)
      x = self.conv2(x)
      x = x.view(-1, self.in_channels * 4)
      mrcnn_class_logits = self.linear_class(x)
      mrcnn_bbox = self.linear_bbox(x)
      mrcnn_bbox = mrcnn_bbox.view(
          mrcnn_bbox.size()[0], -1, self.dim * 2
      )
  
      return [mrcnn_class_logits, mrcnn_bbox]
  
imports: import utils.model_utils
  import utils.exp_utils
  from cuda_functions.nms_2D.pth_nms import nms_gpu
  from cuda_functions.nms_3D.pth_nms import nms_gpu
  from cuda_functions.roi_align_2D.roi_align.crop_and_resize import CropAndResizeFunction
  from cuda_functions.roi_align_3D.roi_align.crop_and_resize import CropAndResizeFunction
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.utils
label_desc: Use image node_id 2 for calling the Classifier obj's underlying member method code with example usage: obj.forward(x, rois) and returns: list