class_docstr: Basic CUB200 PathsDataset to be used as a standard PyTorch Dataset.
  A classic continual learning benchmark built on top of this dataset
  can be found in 'benchmarks.classic', while for more custom benchmark
  design please use the 'benchmarks.generators'.
docstr: :param root: root dir where the dataset can be found or downloaded.
      Defaults to None, which means that the default location for
      'CUB_200_2011' will be used.
  :param train: train or test subset of the original dataset. Default
      to True.
  :param transform: eventual input data transformations to apply.
      Default to None.
  :param target_transform: eventual target data transformations to apply.
      Default to None.
  :param loader: method to load the data from disk. Default to
      torchvision default_loader.
  :param download: default set to True. If the data is already
      downloaded it will skip the download.
docstr_tok: [":","param","root",":","root","dir","where","the","dataset","can","be","found","or","downloaded",".","Defaults","to","None",",","which","means","that","the","default","location","for","'CUB_200_2011","'","will","be","used",".",":","param","train",":","train","or","test","subset","of","the","original","dataset",".","Default","to","True",".",":","param","transform",":","eventual","input","data","transformations","to","apply",".","Default","to","None",".",":","param","target_transform",":","eventual","target","data","transformations","to","apply",".","Default","to","None",".",":","param","loader",":","method","to","load","the","data","from","disk",".","Default","to","torchvision","default_loader",".",":","param","download",":","default","set","to","True",".","If","the","data","is","already","downloaded","it","will","skip","the","download","."]
code: def __init__(
      self,
      root: Optional[Union[str, Path]] = None,
      *,
      train=True,
      transform=None,
      target_transform=None,
      loader=default_loader,
      download=True,
  ):
      """
  
      :param root: root dir where the dataset can be found or downloaded.
          Defaults to None, which means that the default location for
          'CUB_200_2011' will be used.
      :param train: train or test subset of the original dataset. Default
          to True.
      :param transform: eventual input data transformations to apply.
          Default to None.
      :param target_transform: eventual target data transformations to apply.
          Default to None.
      :param loader: method to load the data from disk. Default to
          torchvision default_loader.
      :param download: default set to True. If the data is already
          downloaded it will skip the download.
      """
  
      if root is None:
          root = default_dataset_location("CUB_200_2011")
  
      self.train: bool = train
  
      # Needed for disambiguating the type,
      # which is not the same in the base classes
      self.root: Path = Path(root)
      self._images: List[Tuple[str, int]]
  
      DownloadableDataset.__init__(
          self, root, download=download, verbose=True
      )
      self._load_dataset()
  
      PathsDataset.__init__(
          self,
          os.path.join(root, CUB200.images_folder),
          self._images,
          transform=transform,
          target_transform=target_transform,
          loader=loader,
      )
  
file_path: avalanche/avalanche/benchmarks/datasets/cub200/cub200.py
imports: import csv
  from pathlib import Path
  from typing import Dict, List, Optional, Tuple, Union
  import gdown
  import os
  from collections import OrderedDict
  from torchvision.datasets.folder import default_loader
  from avalanche.benchmarks.datasets import default_dataset_location, DownloadableDataset
  from avalanche.benchmarks.utils import PathsDataset
label_desc: Use image node_id 1 to create a new CUB200 object from inherited base classes: PathsDataset, DownloadableDataset with example: obj = CUB200(root)