Source code for distil.active_learning_strategies.random_sampling

import numpy as np
from .strategy import Strategy

[docs]class RandomSampling(Strategy): """ Implementation of Random Sampling Strategy. This class extends :class:`active_learning_strategies.strategy.Strategy` to include random sampling technique to select data points for active learning. Parameters ---------- X: numpy array Present training/labeled data y: numpy array Labels of present training data unlabeled_x: numpy array Data without labels net: class Pytorch Model class handler: class Data Handler, which can load data even without labels. nclasses: int Number of unique target variables args: dict Specify optional parameters batch_size Batch size to be used inside strategy class (int, optional) """ def __init__(self, X, Y, unlabeled_x, net, handler, nclasses, args={}): """ Constructor method """ super(RandomSampling, self).__init__(X, Y, unlabeled_x, net, handler, nclasses, args)
[docs] def select(self, budget): """ Select next set of points Parameters ---------- budget: int Number of indexes to be returned for next set Returns ---------- rand_idx: list List of selected data point indexes with respect to unlabeled_x """ rand_idx = np.random.permutation(self.unlabeled_x.shape[0])[:budget] rand_idx = rand_idx.tolist() return rand_idx