class_docstr: Pass in a custom dataset that conforms to the format.
  
  Args:
      transforms (Callable): Transforms for image.
      dataset_root (str): The dataset directory.
      num_classes (int): Number of classes.
      mode (str, optional): which part of dataset to use. it is one of ('train', 'val', 'test'). Default: 'train'.
      train_path (str, optional): The train dataset file. When mode is 'train', train_path is necessary.
          The contents of train_path file are as follow:
          image1.jpg ground_truth1.png
          image2.jpg ground_truth2.png
      val_path (str. optional): The evaluation dataset file. When mode is 'val', val_path is necessary.
          The contents is the same as train_path
      test_path (str, optional): The test dataset file. When mode is 'test', test_path is necessary.
          The annotation file is not necessary in test_path file.
      separator (str, optional): The separator of dataset list. Default: ' '.
      edge (bool, optional): Whether to compute edge while training. Default: False
code: def __len__(self) -> int:
      return len(self.file_list)
  
file_path: PaddleHub/paddlehub/datasets/base_seg_dataset.py
imports: import os
  from typing import Tuple, Callable
  import paddle
  import numpy
  from PIL import Image
label_desc: Use image node_id 3 for calling the SegDataset obj's underlying member method code with example usage: obj.__len__() and returns: len