utils¶
DataHandler¶
-
class
distil.utils.data_handler.DataHandler_CIFAR10(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load CIFAR10 dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_CIFAR100(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load CIFAR100 dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_FASHION_MNIST(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load FASHION_MNIST dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_KMNIST(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load KMNIST dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_MNIST(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load MNIST dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_Points(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load data points. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
-
class
distil.utils.data_handler.DataHandler_STL10(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load STL10 dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
-
class
distil.utils.data_handler.DataHandler_SVHN(X, Y=None, select=True, use_test_transform=False)[source]¶ Bases:
Generic[torch.utils.data.dataset.T_co]Data Handler to load SVHN dataset. This class extends
torch.utils.data.Datasetto handle loading data even without labels- Parameters
X (numpy array) – Data to be loaded
y (numpy array, optional) – Labels to be loaded (default: None)
select (bool) – True if loading data without labels, False otherwise
use_test_transform (bool) – True if the data handler should apply the test transform. Otherwise, the data handler will use the training transform (default: False)
Dataset¶
-
distil.utils.dataset.add_label_noise(y_trn, num_cls, noise_ratio=0.8)[source]¶ Adds noise to the specified list of labels. This functionality is taken from CORDS and applied here.
- Parameters
y_trn (list) – The list of labels to add noise.
num_cls (int) – The number of classes possible in the list.
noise_ratio (float, optional) – The percentage of labels to modify. The default is 0.8.
- Returns
y_trn – The list of now-noisy labels
- Return type
list
-
distil.utils.dataset.get_CIFAR10(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads CIFAR10 dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_CIFAR100(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads CIFAR100 dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_FASHION_MNIST(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads FASHION_MNIST dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_KMNIST(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads KMNIST dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_MNIST(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads MNIST dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_STL10(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads STL10 dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_SVHN(path, tr_load_args=None, te_load_args=None)[source]¶ Downloads SVHN dataset
- Parameters
path (str) – Path to save the downloaded dataset
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_dataset(name, path, tr_load_args=None, te_load_args=None)[source]¶ Loads dataset
- Parameters
name (str) – Name of the dataset to be loaded. Supports MNIST and CIFAR10
path (str) – Path to save the downloaded dataset
tr_load_args (dict) – String dictionary for train distribution shift loading
te_load_args (dict) – String dictionary for test distribution shift loading
- Returns
X_tr (numpy array) – Train set
Y_tr (torch tensor) – Training Labels
X_te (numpy array) – Test Set
Y_te (torch tensor) – Test labels
-
distil.utils.dataset.get_imbalanced_idx(y_trn, num_cls, class_ratio=0.6)[source]¶ Returns a list of indices of the supplied dataset that constitute a class-imbalanced subset of the supplied dataset. This functionality is taken from CORDS and applied here.
- Parameters
y_trn (numpy ndarray) – The label set to choose imbalance.
num_cls (int) – The number of classes possible in the list.
class_ratio (float, optional) – The percentage of classes to affect. The default is 0.6.
- Returns
subset_idxs – The list of indices of the supplied dataset that constitute a class-imbalanced subset
- Return type
list
-
distil.utils.dataset.make_data_redundant(X, Y, intial_bud, unique_points=5000, amtRed=2)[source]¶ Modifies the input dataset in such a way that only X.shape(0)/amtRed are original points and rest are repeated or redundant.
- Parameters
X (numpy ndarray) – The feature set to be made redundant.
Y (numpy ndarray) – The label set corresponding to the X.
intial_bud (int) – Number of inital points that are assumed to be labled.
unique_points (int) – Number of points to be kept unique in unlabled pool.
amtRed (float, optional) – Factor that determines redundancy. The default is 2.
- Returns
X – Modified feature set.
- Return type
numpy ndarray
Submodular Functions¶
-
class
distil.utils.submodular.SubmodularFunction(device, x_trn, y_trn, N_trn, batch_size, submod, selection_type)[source]¶ Bases:
distil.utils.similarity_mat.SimilarityComputationImplementation of Submodular Function. This class allows you to use different submodular functions
- Parameters
device (str) – Device to be used, cpu|gpu
x_trn (torch tensor) – Data on which submodular optimization should be applied
y_trn (torch tensor) – Labels of the data
model (class) – Model architecture used for training
N_trn (int) – Number of samples in dataset
batch_size (int) – Batch size to be used for optimization
if_convex (bool) – If convex or not
submod (str) – Choice of submodular function - ‘facility_location’ | ‘graph_cut’ | ‘saturated_coverage’ | ‘sum_redundancy’ | ‘feature_based’
selection_type (str) – Type of selection - ‘PerClass’ | ‘Supervised’ | ‘Full’
Similarity Matrix¶
-
class
distil.utils.similarity_mat.SimilarityComputation(device, x_trn, y_trn, N_trn, batch_size)[source]¶ Bases:
objectImplementation of Submodular Function. This class allows you to use different submodular functions
- Parameters
device (str) – Device to be used, cpu|gpu
x_trn (torch tensor) – Data on which submodular optimization should be applied
y_trn (torch tensor) – Labels of the data
model (class) – Model architecture used for training
N_trn (int) – Number of samples in dataset
batch_size (int) – Batch size to be used for optimization
if_convex (bool) – If convex or not
submod (str) – Choice of submodular function - ‘facility_location’ | ‘graph_cut’ | ‘saturated_coverage’ | ‘sum_redundancy’ | ‘feature_based’
selection_type (str) – Type of selection - ‘PerClass’ | ‘Supervised’ | ‘Full’
-
compute_score(idxs)[source]¶ Compute the score of the indices. :param model_params: Python dictionary object containing models parameters :type model_params: OrderedDict :param idxs: The indices :type idxs: list