code: def get_input(self):
      if self.match is not None:
          input = Data(
              pos=self.input.pos,
              ind=self.match[:, 0],
              size=self.size_match,
          )
          input_target = Data(
              pos=self.input_target.pos,
              ind=self.match[:, 1],
              size=self.size_match,
          )
          return input, input_target
      else:
          input = Data(pos=self.xyz)
          return input
  
imports: from typing import Any
  import torch
  import torch.nn.functional
  from torch.nn import Linear
  from torch.nn import Sequential
  from torch_geometric.data import Data
  from torch_geometric.nn import global_mean_pool
  import logging
  from torch_points3d.core.losses import *
  from torch_points3d.core.common_modules import MLP
  from torch_points3d.core.common_modules import FastBatchNorm1d
  from torch_points3d.core.base_conv.partial_dense import *
  from torch_points3d.models.registration.base import FragmentBaseModel
  from torch_points3d.models.base_architectures import BackboneBasedModel
  from torch_points3d.models.registration.base import create_batch_siamese
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.models.base_architectures.unet import UnwrappedUnetBasedModel
  from torch_points3d.modules.KPConv import *
  from torch_points3d.datasets.registration.pair import PairMultiScaleBatch
label_desc: Use image node_id 7 for calling the FragmentKPConv obj's underlying member method code with example usage: obj.get_input() and returns: input,  input_target, input