code: def __init__(self, dataset_opt):
      super().__init__(dataset_opt)
      pre_transform = self.pre_transform
      self.ss_transform = getattr(self, "ss_transform", None)
      train_transform = self.train_transform
      test_transform = self.test_transform
      pre_filter = self.pre_filter
  
      self.train_dataset = FragmentKitti(
          root=self._data_path,
          mode="train",
          self_supervised=dataset_opt.self_supervised,
          min_size_block=dataset_opt.min_size_block,
          max_size_block=dataset_opt.max_size_block,
          max_dist_overlap=dataset_opt.max_dist_overlap,
          max_time_distance=dataset_opt.max_time_distance,
          min_dist=dataset_opt.min_dist,
          ss_transform=self.ss_transform,
          pre_transform=pre_transform,
          transform=train_transform,
          pre_filter=pre_filter,
          is_online_matching=dataset_opt.is_online_matching,
          num_pos_pairs=dataset_opt.num_pos_pairs,
          min_points=dataset_opt.min_points,
      )
  
      self.val_dataset = FragmentKitti(
          root=self._data_path,
          mode="val",
          self_supervised=False,
          max_dist_overlap=dataset_opt.max_dist_overlap,
          max_time_distance=dataset_opt.max_time_distance,
          min_dist=dataset_opt.min_dist,
          pre_transform=pre_transform,
          transform=test_transform,
          pre_filter=pre_filter,
          is_online_matching=dataset_opt.is_online_matching,
          num_pos_pairs=dataset_opt.num_pos_pairs,
      )
  
      self.test_dataset = FragmentKitti(
          root=self._data_path,
          mode="test",
          self_supervised=False,
          max_dist_overlap=dataset_opt.max_dist_overlap,
          max_time_distance=dataset_opt.max_time_distance,
          min_dist=dataset_opt.min_dist,
          pre_transform=pre_transform,
          transform=test_transform,
          pre_filter=pre_filter,
          is_online_matching=dataset_opt.is_online_matching,
          num_pos_pairs=dataset_opt.num_pos_pairs,
      )
  
imports: import numpy
  import os
  import os.path
  import torch
  from torch_geometric.data import Data
  from torch_points3d.datasets.registration.base_kitti import BaseKitti
  from torch_points3d.datasets.registration.utils import PatchExtractor
  from torch_points3d.metrics.registration_tracker import FragmentRegistrationTracker
  from torch_points3d.datasets.registration.base_siamese_dataset import BaseSiameseDataset
  from torch_points3d.datasets.registration.base_siamese_dataset import GeneralFragment
label_desc: Use image node_id 1 to create a new KittiDataset object from inherited base classes: BaseSiameseDataset with example: obj = KittiDataset(dataset_opt)