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 = TestPairETH2(
          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 = TestPairETH2(
          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 gdown
  import os
  import os.path
  import logging
  import requests
  import glob
  import re
  import sys
  import csv
  from zipfile import ZipFile
  from torch_points3d.datasets.registration.basetest import BasePCRBTest
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.datasets.registration.base_siamese_dataset import BaseSiameseDataset
  from torch_points3d.datasets.registration.basetest import Base3DMatchTest
  from torch_points3d.datasets.registration.base_siamese_dataset import GeneralFragment
  from torch_points3d.metrics.registration_tracker import FragmentRegistrationTracker
  from torch_points3d.datasets.registration.utils import files_exist
  from torch_points3d.datasets.registration.utils import makedirs
label_desc: Use image node_id 1 to create a new ETH2Dataset object from inherited base classes: BaseSiameseDataset with example: obj = ETH2Dataset(dataset_opt)