def ready(self): # This global variable will be used by views.py. # read_trained_data() only needs to be read once here, instead # of every time a request comes in.`` global myFaceRecognizer myFaceRecognizer = FaceRecognizer() logger.info("Created myFaceRecognizer")
def __init__(self, dataset=FaceRecData.Yalefaces_A, data_directory='data', part=[70, 10, 20], loud=False, d_tuning=[25, 100, 25], k_tuning=[1, 15], var_tuning=[1000, 10000, 1000], skip_tuning=False, d_value=0, k_value=3, var_value=10000, use_kernel=False): # TODO: Better way to init this? ''' Constructor for FaceRecTest. Args (optional): dataset (FaceRecData.value): The dataset to use. data_directory (str): The directory where the data lives. part (int): What percentage of the data should be used for training, dev, and test. loud (bool): Whether the classifier should print out fine details. d_tuning (tuple<int>): The range of PCA dimensions to observe during tuning. k_tuning (tuple<int>): The ranke of k for the kNN classifier to observe during tuning. ''' self.dataset = dataset self.data_directory = data_directory self.trn_part = part[0] self.dev_part = part[1] self.tst_part = part[2] self.loud = loud self.d_tuning = d_tuning self.k_tuning = k_tuning self.var_tuning = var_tuning self.skip_tuning = skip_tuning self.d_value = d_value self.k_value = k_value self.var_value = var_value self.use_kernel = use_kernel self.face_recognizer = FaceRecognizer(use_kernel=use_kernel) self.instances = None self.trn_data = None self.dev_data = None self.tst_data = None if sum(part) != 100: raise RuntimeError('Train/Dev/Test partitions don\'t add up ' 'to 100%') if len(d_tuning) != 3: raise RuntimeError('3 parameters are required for tuning d ' '({} found)'.format(len(d_tuning))) if len(k_tuning) != 2: raise RuntimeError('2 parameters are required for tuning k ' '({} found)'.format(len(d_tuning)))