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)