class_docstr: An extended TUDataset from `Pytorch Geometric 
  <https://pytorch-geometric.readthedocs.io/en/latest/index.html>`_, including
  a variety of graph kernel benchmark datasets, *e.g.* "IMDB-BINARY", 
  "REDDIT-BINARY" or "PROTEINS".
  
  .. note::
      Some datasets may not come with any node labels.
      You can then either make use of the argument :obj:`use_node_attr`
      to load additional continuous node attributes (if present) or provide
      synthetic node features using transforms such as
      like :class:`torch_geometric.transforms.Constant` or
      :class:`torch_geometric.transforms.OneHotDegree`.
  
  Args:
      root (string): Root directory where the dataset should be saved.
      name (string): The `name
          <https://chrsmrrs.github.io/datasets/docs/datasets/>`_ of the
          dataset.
      task (string): The evaluation task. Either 'semisupervised' or
          'unsupervised'.
      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.
          (default: :obj:`None`)
      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. (default: :obj:`None`)
      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. (default: :obj:`None`)
      use_node_attr (bool, optional): If :obj:`True`, the dataset will
          contain additional continuous node attributes (if present).
          (default: :obj:`False`)
      use_edge_attr (bool, optional): If :obj:`True`, the dataset will
          contain additional continuous edge attributes (if present).
          (default: :obj:`False`)
      cleaned (bool, optional): If :obj:`True`, the dataset will
          contain only non-isomorphic graphs. (default: :obj:`False`)
      processed_filename (string, optional): The name of the processed data file.
          (default: obj: `data.pt`)
code: def get_num_feature(self):
      data = self.data.__class__()
  
      for key in self.data.keys:
          item, slices = self.data[key], self.slices[key]
          if torch.is_tensor(item):
              s = list(repeat(slice(None), item.dim()))
              s[self.data.__cat_dim__(key, item)] = slice(
                  slices[0], slices[0 + 1]
              )
          else:
              s = slice(slices[idx], slices[idx + 1])
          data[key] = item[s]
      _, num_feature = data.x.size()
  
      return num_feature
  
imports: import os.path
  from itertools import repeat
  import os, shutil, torch
  import numpy
  from torch_geometric.data import InMemoryDataset, download_url, extract_zip
  from torch_geometric.io import read_tu_data
label_desc: Use image node_id 13 for calling the TUDatasetExt obj's underlying member method code with example usage: obj.get_num_feature() and returns: num_feature