import itertools import pickle import data.aa2_data as AA2 import data.attributes as attr import models.gen_model as GM def commitee_potential(accuracies): ''' Function to compute the committee potential of a set of labelers ''' return np.sum((accuracies - 0.5) * np.log(accuracies / (1 - accuracies))) if __name__ == "__main__": unseen_classes = AA2.get_test_classes() combs = list(itertools.combinations(range(10), 2)) cp_map = {} for classes in combs: unseen = [unseen_classes[classes[0]], unseen_classes[classes[1]]] features = attr.get_feature_diffs(unseen) votes, _, labels, _ = GM.create_votes_matrix(classes, features) accuracies = np.array([np.mean(votes[:, i] == labels) for i in range(votes.shape[1])]) # print(accuracies) cp = commitee_potential(accuracies) # print(cp) cp_map[classes] = cp
import os import sys import argparse import distutils import pickle import data.aa2_data as AA2 import models.weak_labeler as WL import models.gen_model as GM import data.attributes as attr # getting attributes matrix and list attributes = AA2.get_attributes() attributes_matrix = AA2.create_attribute_matrix() train_classes, val_classes, test_classes = AA2.get_train_classes(), AA2.get_val_classes(), AA2.get_test_classes() classes_map = AA2.get_classes() # setting random seeds seed = 0 random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) cuda0 = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") def str2bool(v): ''' Used to help argparse library ''' if isinstance(v, bool):
import numpy as np import torch import torch.nn as nn import torch.nn.functional as F import torchvision.transforms as transforms import data.aa2_data as AA2 # getting attributes matrix and list attributes = AA2.get_attributes() attributes_matrix = AA2.create_attribute_matrix() train_classes, val_classes, test_classes = AA2.get_train_classes( ), AA2.get_val_classes(), AA2.get_test_classes() classes_map = AA2.get_classes() def get_feature_diffs(unseen_classes): ''' Function to generate the feature differences between two unseen classes Args: unseen_classes - a list of two strings that represent the unseen class name ''' binary_class_indices = [ classes_map[unseen_classes[0]], classes_map[unseen_classes[1]] ] binary_class_features = [] atts_1 = attributes_matrix[binary_class_indices[0]] atts_2 = attributes_matrix[binary_class_indices[1]]