code: def _forward_test(self, body_feats, pro_bboxes, pro_feats):
      for stage in range(self.num_stages):
          roi_feats = self.get_roi_features(
              body_feats, pro_bboxes, self.bbox_roi_extractor
          )
          (
              class_logits,
              bbox_deltas,
              pro_feats,
              attn_feats,
          ) = self.bbox_heads[stage](roi_feats, pro_feats)
          bbox_pred = self.bbox_heads[stage].refine_bboxes(
              pro_bboxes, bbox_deltas
          )
  
          pro_bboxes = bbox_pred.detach()
  
      roi_feats = self.get_roi_features(
          body_feats, bbox_pred, self.mask_roi_extractor
      )
      mask_logits = self.mask_heads[stage](roi_feats, attn_feats)
  
      return {
          "class_logits": class_logits,
          "bbox_pred": bbox_pred,
          "mask_logits": mask_logits,
      }
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import paddle
  from paddle import nn
  from ppdet.core.workspace import register
  from ppdet.modeling import initializer
  from .roi_extractor import RoIAlign
  from ..bbox_utils import delta2bbox_v2
  from ..cls_utils import _get_class_default_kwargs
  from ..layers import MultiHeadAttention
label_desc: Use image node_id 5 for calling the SparseRoIHead obj's underlying member method code with example usage: obj._forward_test(body_feats, pro_bboxes, pro_feats) and returns: dict