class_docstr: Semantic segmentation dataset for PASCAL `VOC2012`_.
  
  .. _`VOC2012`: http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
  
  Args:
      data_dir (string): Path to the root of the training data. If this is
          :obj:`auto`, this class will automatically download data for you
          under :obj:`$CHAINER_DATASET_ROOT/pfnet/chainercv/voc`.
      split ({'train', 'val', 'trainval'}): Select a split of the dataset.
  
  This dataset returns the following data.
  
  .. csv-table::
      :header: name, shape, dtype, format
  
      :obj:`img`, ":math:`(3, H, W)`", :obj:`float32`,         "RGB, :math:`[0, 255]`"
      :obj:`label`, ":math:`(H, W)`", :obj:`int32`,         ":math:`[-1, \#class - 1]`"
code: def _get_label(self, i):
      label_path = os.path.join(
          self.data_dir, "SegmentationClass", self.ids[i] + ".png"
      )
      label = read_label(label_path, dtype=np.int32)
      label[label == 255] = -1
      # (1, H, W) -> (H, W)
      return label
  
file_path: chainercv/chainercv/datasets/voc/voc_semantic_segmentation_dataset.py
imports: import numpy
  import os
  from chainercv.chainer_experimental.datasets.sliceable import GetterDataset
  from chainercv.datasets.voc import voc_utils
  from chainercv.utils import read_image
  from chainercv.utils import read_label
label_desc: Use image node_id 4 for calling the VOCSemanticSegmentationDataset obj's underlying member method code with example usage: obj._get_label(i) and returns: label