def train_val_dataset_for_bias(self, train_dataset):
        exemplars_indexes = np.hstack(self.exemplar_sets)
        exemplars_labels = np.hstack(
            [[label] * len(self.exemplar_sets[label])
             for label in range(len(self.exemplar_sets))])
        exemplar_train_ind, exemplar_val_ind = train_test_split(
            exemplars_indexes, stratify=exemplars_labels, test_size=500)

        train_dataset_ind = train_dataset.indices
        _, train_dataset_labels = self.dataset.get_items_of(train_dataset_ind)
        train_dataset_ind, val_dataset_ind = train_test_split(
            train_dataset_ind, stratify=train_dataset_labels, test_size=500)

        exemplar_train_imgs, exemplar_train_labels = self.dataset.get_items_of(
            exemplar_train_ind)
        exemplar_val_imgs, exemplar_val_labels = self.dataset.get_items_of(
            exemplar_val_ind)

        train_dataset = Subset(self.dataset, train_dataset_ind)
        val_dataset = Subset(self.dataset, val_dataset_ind)
        exemplar_train_set = ExemplarSet(exemplar_train_imgs,
                                         exemplar_train_labels,
                                         utils.get_train_eval_transforms()[0])
        exemplar_val_set = ExemplarSet(exemplar_val_imgs, exemplar_val_labels,
                                       utils.get_train_eval_transforms()[0])

        train_dataset = utils.create_augmented_dataset(train_dataset,
                                                       exemplar_train_set)
        val_dataset = utils.create_augmented_dataset(val_dataset,
                                                     exemplar_val_set)

        return train_dataset, val_dataset
 def combine_trainset_exemplars(self, train_dataset: Cifar100):
     exemplar_indexes = np.hstack(self.exemplar_sets)
     images, labels = self.dataset.get_items_of(exemplar_indexes)
     exemplar_dataset = ExemplarSet(images, labels, utils.get_train_eval_transforms()[0])
     return utils.create_augmented_dataset(train_dataset, exemplar_dataset)