class_docstr: Encode the geometry-specific features of each 3D proposal.
  
  Please refer to `PartA2 <https://arxiv.org/pdf/1907.03670.pdf>`_ for more
  details.
  
  Args:
      out_size (int or tuple): The size of output features. n or
          [n1, n2, n3].
      max_pts_per_voxel (int, optional): The maximum number of points per
          voxel. Default: 128.
      mode (str, optional): Pooling method of RoIAware, 'max' or 'avg'.
          Default: 'max'.
class_docstr_tok: ["Encode","the","geometry-specific","features","of","each","3D","proposal",".","Please","refer","to","`","PartA2","<","https",":","\/\/arxiv.org\/pdf\/1907.03670.pdf",">","`","_","for","more","details",".","Args",":","out_size","(","int","or","tuple",")",":","The","size","of","output","features",".","n","or","[","n1",",","n2",",","n3","]",".","max_pts_per_voxel","(","int",",","optional",")",":","The","maximum","number","of","points","per","voxel",".","Default",":","128.","mode","(","str",",","optional",")",":","Pooling","method","of","RoIAware",",","'max","'","or","'avg","'",".","Default",":","'max","'","."]
docstr: Args:
      rois (torch.Tensor): [N, 7], in LiDAR coordinate,
          (x, y, z) is the bottom center of rois.
      pts (torch.Tensor): [npoints, 3], coordinates of input points.
      pts_feature (torch.Tensor): [npoints, C], features of input points.
  
  Returns:
      pooled_features (torch.Tensor): [N, out_x, out_y, out_z, C]
docstr_tok: ["Args",":","rois","(","torch.Tensor",")",":","[","N",",","7","]",",","in","LiDAR","coordinate",",","(","x",",","y",",","z",")","is","the","bottom","center","of","rois",".","pts","(","torch.Tensor",")",":","[","npoints",",","3","]",",","coordinates","of","input","points",".","pts_feature","(","torch.Tensor",")",":","[","npoints",",","C","]",",","features","of","input","points",".","Returns",":","pooled_features","(","torch.Tensor",")",":","[","N",",","out_x",",","out_y",",","out_z",",","C","]"]
code: def forward(self, rois, pts, pts_feature):
      """
      Args:
          rois (torch.Tensor): [N, 7], in LiDAR coordinate,
              (x, y, z) is the bottom center of rois.
          pts (torch.Tensor): [npoints, 3], coordinates of input points.
          pts_feature (torch.Tensor): [npoints, C], features of input points.
  
      Returns:
          pooled_features (torch.Tensor): [N, out_x, out_y, out_z, C]
      """
  
      return RoIAwarePool3dFunction.apply(
          rois,
          pts,
          pts_feature,
          self.out_size,
          self.max_pts_per_voxel,
          self.mode,
      )
  
file_path: lavis/lavis/common/annotator/uniformer/mmcv/ops/roiaware_pool3d.py
imports: import torch
  from torch import nn
  from torch.autograd import Function
  import annotator.uniformer.mmcv
  from ..utils import ext_loader
label_desc: Use image node_id 2 for calling the RoIAwarePool3d obj's underlying member method code with example usage: obj.forward(rois, pts, pts_feature) and returns: RoIAwarePool3dFunction