class_docstr: A mask point head use in PointRend.
  
  ``PointHead`` 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. Default: 3.
      in_channels (int): Number of input channels. Default: 256.
      fc_channels (int): Number of fc channels. Default: 256.
      num_classes (int): Number of classes for logits. Default: 80.
      class_agnostic (bool): Whether use class agnostic classification.
          If so, the output channels of logits will be 1. Default: False.
      coarse_pred_each_layer (bool): Whether concatenate coarse feature with
          the output of each fc layer. Default: True.
      conv_cfg (dict|None): Dictionary to construct and config conv layer.
          Default: dict(type='Conv1d'))
      norm_cfg (dict|None): Dictionary to construct and config norm layer.
          Default: None.
      loss_point (dict): Dictionary to construct and config loss layer of
          point head. Default: dict(type='CrossEntropyLoss', use_mask=True,
          loss_weight=1.0).
docstr: Sample from fine grained features.
  
  Args:
      prev_output (list[Tensor]): Prediction of previous decode head.
      points (Tensor): Point coordinates, shape (batch_size,
          num_points, 2).
  
  Returns:
      coarse_feats (Tensor): Sampled coarse feature, shape (batch_size,
          num_classes, num_points).
docstr_tok: ["Sample","from","fine","grained","features",".","Args",":","prev_output","(","list","[","Tensor","]",")",":","Prediction","of","previous","decode","head",".","points","(","Tensor",")",":","Point","coordinates",",","shape","(","batch_size",",","num_points",",","2",")",".","Returns",":","coarse_feats","(","Tensor",")",":","Sampled","coarse","feature",",","shape","(","batch_size",",","num_classes",",","num_points",")","."]
code: def _get_coarse_point_feats(self, prev_output, points):
      """Sample from fine grained features.
  
      Args:
          prev_output (list[Tensor]): Prediction of previous decode head.
          points (Tensor): Point coordinates, shape (batch_size,
              num_points, 2).
  
      Returns:
          coarse_feats (Tensor): Sampled coarse feature, shape (batch_size,
              num_classes, num_points).
      """
  
      coarse_feats = point_sample(
          prev_output, points, align_corners=self.align_corners
      )
  
      return coarse_feats
  
imports: import torch
  import torch.nn
  from annotator.uniformer.mmcv.cnn import ConvModule, normal_init
  from annotator.uniformer.mmcv.ops import point_sample
  from annotator.uniformer.mmseg.models.builder import HEADS
  from annotator.uniformer.mmseg.ops import resize
  from ..losses import accuracy
  from .cascade_decode_head import BaseCascadeDecodeHead
label_desc: Use image node_id 6 for calling the PointHead obj's underlying member method code with example usage: obj._get_coarse_point_feats(prev_output, points) and returns: coarse_feats