class_docstr: A mask point head use in PointRend.
  
  ``MaskPointHead`` use shared multi-layer perceptron (equivalent to
  nn.Conv1d) to predict the logit of input points. The fine-grained feature
  and coarse feature will be concatenate together for predication.
  
  Args:
      num_fcs (int): Number of fc layers in the head. Defaults to 3.
      in_channels (int): Number of input channels. Defaults to 256.
      fc_channels (int): Number of fc channels. Defaults to 256.
      num_classes (int): Number of classes for logits. Defaults to 80.
      class_agnostic (bool): Whether use class agnostic classification.
          If so, the output channels of logits will be 1. Defaults to False.
      coarse_pred_each_layer (bool): Whether concatenate coarse feature with
          the output of each fc layer. Defaults to True.
      conv_cfg (:obj:`ConfigDict` or dict): Dictionary to construct
          and config conv layer. Defaults to dict(type='Conv1d')).
      norm_cfg (:obj:`ConfigDict` or dict, optional): Dictionary to construct
          and config norm layer. Defaults to None.
      loss_point (:obj:`ConfigDict` or dict): Dictionary to construct and
          config loss layer of point head. Defaults to
          dict(type='CrossEntropyLoss', use_mask=True, loss_weight=1.0).
      init_cfg (:obj:`ConfigDict` or dict or list[:obj:`ConfigDict` or             dict], optional): Initialization config dict.
docstr: Get training targets of MaskPointHead for all images.
  
  Args:
      rois (Tensor): Region of Interest, shape (num_rois, 5).
      rel_roi_points (Tensor): Points coordinates relative to RoI, shape
          (num_rois, num_points, 2).
      sampling_results (:obj:`SamplingResult`): Sampling result after
          sampling and assignment.
      batch_gt_instances (list[:obj:`InstanceData`]): Batch of
          gt_instance. It usually includes ``bboxes``, ``labels``, and
          ``masks`` attributes.
      cfg (obj:`ConfigDict` or dict): Training cfg.
  
  Returns:
      Tensor: Point target, shape (num_rois, num_points).
docstr_tok: ["Get","training","targets","of","MaskPointHead","for","all","images",".","Args",":","rois","(","Tensor",")",":","Region","of","Interest",",","shape","(","num_rois",",","5",")",".","rel_roi_points","(","Tensor",")",":","Points","coordinates","relative","to","RoI",",","shape","(","num_rois",",","num_points",",","2",")",".","sampling_results","(",":","obj",":","`","SamplingResult","`",")",":","Sampling","result","after","sampling","and","assignment",".","batch_gt_instances","(","list","[",":","obj",":","`","InstanceData","`","]",")",":","Batch","of","gt_instance",".","It","usually","includes","``","bboxes","``",",","``","labels","``",",","and","``","masks","``","attributes",".","cfg","(","obj",":","`","ConfigDict","`","or","dict",")",":","Training","cfg",".","Returns",":","Tensor",":","Point","target",",","shape","(","num_rois",",","num_points",")","."]
code: def get_targets(
      self,
      rois: Tensor,
      rel_roi_points: Tensor,
      sampling_results: List[SamplingResult],
      batch_gt_instances: InstanceList,
      cfg: ConfigType,
  ) -> Tensor:
      """Get training targets of MaskPointHead for all images.
  
      Args:
          rois (Tensor): Region of Interest, shape (num_rois, 5).
          rel_roi_points (Tensor): Points coordinates relative to RoI, shape
              (num_rois, num_points, 2).
          sampling_results (:obj:`SamplingResult`): Sampling result after
              sampling and assignment.
          batch_gt_instances (list[:obj:`InstanceData`]): Batch of
              gt_instance. It usually includes ``bboxes``, ``labels``, and
              ``masks`` attributes.
          cfg (obj:`ConfigDict` or dict): Training cfg.
  
      Returns:
          Tensor: Point target, shape (num_rois, num_points).
      """
  
      num_imgs = len(sampling_results)
      rois_list = []
      rel_roi_points_list = []
      for batch_ind in range(num_imgs):
          inds = rois[:, 0] == batch_ind
          rois_list.append(rois[inds])
          rel_roi_points_list.append(rel_roi_points[inds])
      pos_assigned_gt_inds_list = [
          res.pos_assigned_gt_inds for res in sampling_results
      ]
      cfg_list = [cfg for _ in range(num_imgs)]
  
      point_targets = map(
          self._get_targets_single,
          rois_list,
          rel_roi_points_list,
          pos_assigned_gt_inds_list,
          batch_gt_instances,
          cfg_list,
      )
      point_targets = list(point_targets)
  
      if len(point_targets) > 0:
          point_targets = torch.cat(point_targets)
  
      return point_targets
  
imports: from typing import List, Tuple
  import torch
  import torch.nn
  from mmcv.cnn import ConvModule
  from mmcv.ops import point_sample, rel_roi_point_to_rel_img_point
  from mmengine.model import BaseModule
  from mmengine.structures import InstanceData
  from torch import Tensor
  from mmdet.models.task_modules.samplers import SamplingResult
  from mmdet.models.utils import get_uncertain_point_coords_with_randomness, get_uncertainty
  from mmdet.registry import MODELS
  from mmdet.structures.bbox import bbox2roi
  from mmdet.utils import ConfigType, InstanceList, MultiConfig, OptConfigType
label_desc: Use image node_id 3 for calling the MaskPointHead obj's underlying member method code with example usage: obj.get_targets(rois, rel_roi_points, sampling_results, batch_gt_instances, cfg) and returns: point_targets