def get_subset(self):
    if (self.previous_s is not None):
        Y_e = [self.Y_vec[ie] for ie in self.previous_s]
    else:
        Y_e = self.Y_vec
    probs = torch.zeros([self.n_drop, len(Y_e), 10])
    for i in range(self.n_drop):
        for idxs in range(len(Y_e)):
            probs[i][idxs] += Y_e[idxs]
    pb = probs.mean(0)
    entropy1 = ((- pb) * torch.log(pb)).sum(1)
    entropy2 = ((- probs) * torch.log(probs)).sum(2).mean(0)
    U = (entropy2 - entropy1)
    points = U.sort()[1][:self.size]
    if (self.previous_s is not None):
        final_points = [self.previous_s[p] for p in points]
    else:
        final_points = points
    return final_points
def get_subset(self):
    if (self.previous_s is not None):
        Y_e = [self.Y_vec[ie] for ie in self.previous_s]
    else:
        Y_e = self.Y_vec
    probs = torch.zeros([self.n_drop, len(Y_e), 10])
    for i in range(self.n_drop):
        for idxs in range(len(Y_e)):
            probs[i][idxs] += Y_e[idxs]
    pb = probs.mean(0)
    entropy1 = ((- pb) * torch.log(pb)).sum(1)
    entropy2 = ((- probs) * torch.log(probs)).sum(2).mean(0)
    U = (entropy2 - entropy1)
    points = U.sort()[1][:self.size]
    if (self.previous_s is not None):
        final_points = [self.previous_s[p] for p in points]
    else:
        final_points = points
    return final_points