DatasetFourFold

class torchhd.datasets.DatasetFourFold(root: str, train: bool = True, fold: int = -1, hyper_search: bool = False, transform: Callable | None = None, target_transform: Callable | None = None, download: bool = False)[source]

Generic class for loading datasets without separate test data that were used in Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?.

Parameters:
  • root (string) – Root directory containing the files of the dataset.

  • train (bool, optional) – If True, returns training (sub)set from the file storing training data as further determined by fold and hyper_search variables. Otherwise returns a subset of train dataset if hypersearch is performed (hyper_search = True) if not (hyper_search = False) returns a subset of training dataset as specified in conxuntos_kfold.dat if fold number is correct. Otherwise issues an error.

  • fold (int, optional) – Specifies which fold number to use. The default value of -1 returns all the training data from the corresponding file. Values between 0 and 3 specify, which fold in conxuntos_kfold.dat to use. Relevant only if hyper_search is set to False and 0 <= fold <= 3. Indices in even rows (zero indexing) of conxuntos_kfold.dat correspond to train subsets while indices in odd rows correspond to test subsets.

  • hyper_search (bool, optional) – If True, creates dataset using indeces in conxuntos.dat. This split is used for hyperparameter search. The first row corresponds to train indices (used if train = True) while the second row corresponds to test indices (used if train = False).

  • transform (callable, optional) – A function/transform that takes in an torch.FloatTensor and returns a transformed version.

  • target_transform (callable, optional) – A function/transform that takes in the target and transforms it.

  • download (bool, optional) – If True, downloads the dataset from the internet and puts it in root directory. If dataset is already downloaded, it is not downloaded again.

Special-members:

__getitem__(index: int) Tuple[FloatTensor, LongTensor]
Parameters:

index (int) – Index

Returns:

(sample, target) where target is the index of the target class

Return type:

Tuple[torch.FloatTensor, torch.LongTensor]