class_docstr: Semi-supervision Cityscapes dataset with images, segmentation labels and data list.
  Source: https://www.cityscapes-dataset.com/
  Semi-supervision Cityscapes dataset from [OneDrive](https://pkueducn-my.sharepoint.com/:f:/g/personal/pkucxk_pku_edu_cn/EtjNKU0oVMhPkOKf9HTPlVsBIHYbACel6LSvcUeP4MXWVg?e=139icd)
  
  The folder structure is as follows:
  
      city
      ├── config_new
      │    ├── coarse_split
      │    │   ├── train_extra_3000.txt
      │    │   ├── train_extra_6000.txt
      │    │   └── train_extra_9000.txt
      │    ├── subset_train
      │    │   ├── train_aug_labeled_1-16.txt
      │    │   ├── train_aug_labeled_1-2.txt
      │    │   ├── train_aug_labeled_1-4.txt
      │    │   ├── train_aug_labeled_1-8.txt
      │    │   ├── train_aug_unlabeled_1-16.txt
      │    │   ├── train_aug_unlabeled_1-2.txt
      │    │   ├── train_aug_unlabeled_1-4.txt
      │    │   └── train_aug_unlabeled_1-8.txt
      │    ├── test.txt
      │    ├── train.txt
      │    ├── train_val.txt
      │    └── val.txt  
      ├── generate_colored_gt.py
      ├── images
      │   ├── test
      │   ├── train
      │   └── val
      └── segmentation
          ├── test
          ├── train
          └── val
  
  Args:
      transforms (list): Transforms for image.
      dataset_root (str): Cityscapes dataset directory.
      mode (str, optional): Which part of dataset to use. it is one of ('train', 'val', 'test'). Default: 'train'.
      unsupervised (bool, optional): Whether haven't labels. Default: False.
code: def __init__(
      self,
      mode,
      dataset_root,
      transforms,
      unsupervised=False,
      train_path=None,
      val_path=None,
      file_length=None,
      img_channels=3,
      ignore_index=255,
      separator="\t",
  ):
      super(CityscapesCPS, self).__init__(
          mode,
          dataset_root,
          transforms,
          train_path,
          val_path,
          file_length,
          img_channels,
          ignore_index,
          separator,
      )
  
      self.unsupervised = unsupervised
  
      self.num_classes = self.NUM_CLASSES
  
      if self.mode not in ["train", "val"]:
          raise ValueError(
              "mode should be 'train', 'val' or 'test', but got {}.".format(
                  self.mode
              )
          )
      self._file_names = self._get_file_names(mode)
  
      if not os.path.exists(dataset_root):
          raise FileNotFoundError(
              "there is not `dataset_root`: {}.".format(dataset_root)
          )
      if self.transforms is None:
          raise ValueError("`transforms` is necessary, but it is None.")
  
file_path: PaddleSeg/contrib/CrossPseudoSupervision/datasets/cityscapes_cps.py
imports: import os
  import numpy
  from paddleseg.transforms import Compose
  from cvlibs import manager
  from .basedataset import BaseDataset
label_desc: Use image node_id 1 to create a new CityscapesCPS object from inherited base classes: BaseDataset with example: obj = CityscapesCPS(mode, dataset_root, transforms, unsupervised, train_path, val_path, file_length, img_channels, ignore_index, separator)