class_docstr: PointNet2 with multi-scale grouping
  metric learning siamese network that uses feature propogation layers
code: def set_input(self, data, device):
      assert len(data.pos.shape) == 3
      data = data.to(device)
      self.input = Data(
          x=data.x.transpose(1, 2).contiguous(), pos=data.pos
      )
  
file_path: torch-points3d/torch_points3d/models/registration/pointnet.py
imports: from torch_geometric.data import Data
  import logging
  from torch_points3d.modules.pointnet2 import *
  from torch_points3d.core.common_modules.dense_modules import Conv1D
  from torch_points3d.core.common_modules.base_modules import Seq
  from torch_points3d.core.base_conv.dense import DenseFPModule
  from torch_points3d.models.base_architectures import BackboneBasedModel
  from torch_points3d.models.registration.base import create_batch_siamese
label_desc: Use image node_id 2 for calling the SiamesePointNet2_D obj's underlying member method code with example usage: obj.set_input(data, device) without return types