Ejemplo n.º 1
0
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
	
Ejemplo n.º 2
0
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]]