class_docstr: Transform for running a PointNet inference on a Data object. It assumes that the
  model has been trained for segmentation.
  
  Parameters
  ----------
  checkpoint_dir: str
      Path to a checkpoint directory
  model_name: str
      Model name, the file ``checkpoint_dir/model_name.pt`` must exist
  weight_name: str
      Type of weights to load (best for iou, best for loss etc...)
  feat_name: str
      Name of the key in Data that will hold the output of the forward
  num_classes: int
      Number of classes that the model was trained on
code: def __call__(self, data):
      data_c = data.clone()
      data_c.pos = data_c.pos.float()
      if self.inference_transform:
          data_c = self.inference_transform(data_c)
      self.model.set_input(data_c, data.pos.device)
      feat = self.model.get_local_feat().detach()
      setattr(data, str(self.feat_name), feat)
      return data
  
file_path: torch-points3d/torch_points3d/core/data_transform/inference_transforms.py
imports: import os
  import sys
  import logging
label_desc: Use image node_id 2 for calling the PointNetForward obj's underlying member method code with example usage: obj.__call__(data) and returns: data