class_docstr: Scannet dataset, you will have to agree to terms and conditions by hitting enter
  so that it downloads the dataset.
  
  http://www.scan-net.org/
  
  Parameters
  ----------
  root : str
      Path to the data
  split : str, optional
      Split used (train, val or test)
  transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a transformed
      version. The data object will be transformed before every access.
  pre_transform (callable, optional):
      A function/transform that takes in an :obj:`torch_geometric.data.Data` object and returns a
      transformed version. The data object will be transformed before being saved to disk.
  pre_filter (callable, optional):
      A function that takes in an :obj:`torch_geometric.data.Data` object and returns a boolean
      value, indicating whether the data object should be included in the final dataset.
  version : str, optional
      version of scannet, by default "v2"
  use_instance_labels : bool, optional
      Wether we use instance labels or not, by default False
  use_instance_bboxes : bool, optional
      Wether we use bounding box labels or not, by default False
  donotcare_class_ids : list, optional
      Class ids to be discarded
  max_num_point : [type], optional
      Max number of points to keep during the pre processing step
  use_multiprocessing : bool, optional
      Wether we use multiprocessing or not
  process_workers : int, optional
      Number of process workers
  normalize_rgb : bool, optional
      Normalise rgb values, by default True
class_docstr_tok: ["Scannet","dataset",",","you","will","have","to","agree","to","terms","and","conditions","by","hitting","enter","so","that","it","downloads","the","dataset",".","http",":","\/\/www.scan-net.org\/","Parameters","--","--","--","--","--","root",":","str","Path","to","the","data","split",":","str",",","optional","Split","used","(","train",",","val","or","test",")","transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","every","access",".","pre_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","transformed","version",".","The","data","object","will","be","transformed","before","being","saved","to","disk",".","pre_filter","(","callable",",","optional",")",":","A","function","that","takes","in","an",":","obj",":","`","torch_geometric.data.Data","`","object","and","returns","a","boolean","value",",","indicating","whether","the","data","object","should","be","included","in","the","final","dataset",".","version",":","str",",","optional","version","of","scannet",",","by","default","``","v2","''","use_instance_labels",":","bool",",","optional","Wether","we","use","instance","labels","or","not",",","by","default","False","use_instance_bboxes",":","bool",",","optional","Wether","we","use","bounding","box","labels","or","not",",","by","default","False","donotcare_class_ids",":","list",",","optional","Class","ids","to","be","discarded","max_num_point",":","[","type","]",",","optional","Max","number","of","points","to","keep","during","the","pre","processing","step","use_multiprocessing",":","bool",",","optional","Wether","we","use","multiprocessing","or","not","process_workers",":","int",",","optional","Number","of","process","workers","normalize_rgb",":","bool",",","optional","Normalise","rgb","values",",","by","default","True"]
code: def __init__(
      self,
      root,
      split="train",
      transform=None,
      pre_transform=None,
      pre_filter=None,
      version="v2",
      use_instance_labels=False,
      use_instance_bboxes=False,
      donotcare_class_ids=[],
      max_num_point=None,
      process_workers=4,
      types=[
          ".txt",
          "_vh_clean_2.ply",
          "_vh_clean_2.0.010000.segs.json",
          ".aggregation.json",
      ],
      normalize_rgb=True,
      is_test=False,
  ):
      assert self.SPLITS == ["train", "val", "test"]
      if not isinstance(donotcare_class_ids, list):
          raise Exception(
              "donotcare_class_ids should be list with indices of class to ignore"
          )
      self.donotcare_class_ids = donotcare_class_ids
  
      self.valid_class_idx = [
          idx
          for idx in self.VALID_CLASS_IDS
          if idx not in donotcare_class_ids
      ]
  
      assert version in [
          "v2",
          "v1",
      ], "The version should be either v1 or v2"
      self.version = version
      self.max_num_point = max_num_point
      self.use_instance_labels = use_instance_labels
      self.use_instance_bboxes = use_instance_bboxes
      self.use_multiprocessing = process_workers > 1
      self.process_workers = process_workers
      self.types = types
      self.normalize_rgb = normalize_rgb
      self.is_test = is_test
      super().__init__(root, transform, pre_transform, pre_filter)
      if split == "train":
          path = self.processed_paths[0]
      elif split == "val":
          path = self.processed_paths[1]
      elif split == "test":
          path = self.processed_paths[2]
      else:
          raise ValueError(
              (
                  f"Split {split} found, but expected either "
                  "train, val, or test"
              )
          )
  
      self.data, self.slices = torch.load(path)
  
      if split != "test":
          if not use_instance_bboxes:
              delattr(self.data, "instance_bboxes")
          if not use_instance_labels:
              delattr(self.data, "instance_labels")
          self.data.y = self._remap_labels(self.data.y)
          self.has_labels = True
      else:
          self.has_labels = False
  
      self.read_from_metadata()
  
imports: import os
  import os.path
  import shutil
  import json
  import torch
  from glob import glob
  import sys
  import csv
  import logging
  import numpy
  from plyfile import PlyData, PlyElement
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  import torch_geometric.transforms
  import multiprocessing
  import pandas
  import tempfile
  import urllib
  from urllib.request import urlopen
  from torch_points3d.datasets.base_dataset import BaseDataset
  import torch_points3d.core.data_transform
  from .None import IGNORE_LABEL
label_desc: Use image node_id 1 to create a new Scannet object from inherited base classes: InMemoryDataset with example: obj = Scannet(root, split, transform, pre_transform, pre_filter, version, use_instance_labels, use_instance_bboxes, donotcare_class_ids, max_num_point, process_workers, types, normalize_rgb, is_test)