class_docstr: - **homepage**: http://www.vision.caltech.edu/visipedia/CUB-200.html
code: def _generate_categories(self) -> List[str]:
      self._year = "2011"
      resources = self._resources()
  
      dp = resources[0].load(self._root)
      dp = Filter(dp, path_comparator("name", "classes.txt"))
      dp = CSVDictParser(
          dp, fieldnames=("label", "category"), dialect="cub200"
      )
  
      return [row["category"].split(".")[1] for row in dp]
  
imports: import csv
  import functools
  import pathlib
  from typing import Any, BinaryIO, Callable, Dict, List, Optional, Tuple, Union
  import torch
  from torchdata.datapipes.iter import CSVDictParser, CSVParser, Demultiplexer, Filter, IterDataPipe, IterKeyZipper, LineReader, Mapper
  from torchdata.datapipes.map import IterToMapConverter
  from torchvision.prototype.datasets.utils import Dataset, EncodedImage, GDriveResource, OnlineResource
  from torchvision.prototype.datasets.utils._internal import getitem, hint_sharding, hint_shuffling, INFINITE_BUFFER_SIZE, path_accessor, path_comparator, read_categories_file, read_mat
  from torchvision.prototype.tv_tensors import Label
  from torchvision.tv_tensors import BoundingBoxes
  from .._api import register_dataset, register_info
label_desc: Use image node_id 14 for calling the CUB200 obj's underlying member method code with example usage: obj._generate_categories() and returns: unknown