code: def __init__(self, dataset_opt):
      super().__init__(dataset_opt)
      pre_transform = self.pre_transform
      ss_transform = getattr(self, "ss_transform", None)
      train_transform = self.train_transform
      test_transform = self.test_transform
  
      self.train_dataset = TestPair3DMatch(
          root=self._data_path,
          pre_transform=pre_transform,
          transform=train_transform,
          num_pos_pairs=dataset_opt.num_pos_pairs,
          max_dist_overlap=dataset_opt.max_dist_overlap,
          self_supervised=True,
          min_size_block=dataset_opt.min_size_block,
          max_size_block=dataset_opt.max_size_block,
          ss_transform=ss_transform,
          min_points=dataset_opt.min_points,
          use_fps=dataset_opt.use_fps,
      )
  
      self.test_dataset = TestPair3DMatch(
          root=self._data_path,
          pre_transform=pre_transform,
          transform=test_transform,
          num_pos_pairs=50,
          max_dist_overlap=dataset_opt.max_dist_overlap,
          self_supervised=False,
      )
  
imports: import numpy
  import os
  import os.path
  import torch
  import json
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.datasets.registration.basetest import Base3DMatchTest
  from torch_points3d.datasets.registration.basetest import SimplePatch
  from torch_points3d.datasets.registration.utils import PatchExtractor
  from torch_points3d.datasets.registration.detector import RandomDetector
  from torch_points3d.datasets.registration.pair import Pair, MultiScalePair
  from torch_points3d.datasets.registration.utils import tracked_matches
  from torch_points3d.datasets.registration.base_siamese_dataset import GeneralFragment
  from torch_points3d.datasets.registration.base_siamese_dataset import BaseSiameseDataset
label_desc: Use image node_id 1 to create a new TestPair3DMatchDataset object from inherited base classes: BaseSiameseDataset with example: obj = TestPair3DMatchDataset(dataset_opt)