if __name__ == '__main__': iterations = 3 legalLabels = range(2) face_data = FaceData("facedata") classifier = PerceptronClassifier(legalLabels, iterations) featureFunction = face_data.basic_feature_extractor trainingDataList = list(map(featureFunction, face_data.face_train_imgs)) validationDataList = list( map(featureFunction, face_data.face_validation_imgs)) testDataList = list(map(featureFunction, face_data.face_test_imgs)) n_train = len(trainingDataList) classifier.set_weights(range(2), FaceData.FACE_DATUM_WIDTH, FaceData.FACE_DATUM_HEIGHT) # Conduct training and testing percentages, runtimes = ([], []) for n, n_samples in enumerate( range(n_train // 10, n_train + 1, n_train // 10)): start_time = time.time() print('Training with {}% of data'.format((n + 1) * 10)) idx = np.random.choice(n_train, n_samples, replace=False) train_img_sample = np.array(trainingDataList)[idx].tolist() train_labels_sample = np.array( face_data.face_train_labels)[idx].tolist() errors = classifier.train(train_img_sample, train_labels_sample) print('errors over 3 iterations', errors) print('Validating...') validation_guesses = classifier.classify(validationDataList)
if __name__ == '__main__': iterations = 3 legalLabels = range(10) digit_data = DigitData("digitdata") classifier = PerceptronClassifier(legalLabels, iterations) featureFunction = digit_data.basic_feature_extractor_digit trainingDataList = list(map(featureFunction, digit_data.digit_train_imgs)) validationDataList = list( map(featureFunction, digit_data.digit_validation_imgs)) testDataList = list(map(featureFunction, digit_data.digit_test_imgs)) n_train = len(trainingDataList) classifier.set_weights(range(10), DigitData.DIGIT_DATUM_WIDTH, DigitData.DIGIT_DATUM_HEIGHT) # Conduct training and testing percentages, runtimes = ([], []) for n, n_samples in enumerate( range(n_train // 10, n_train + 1, n_train // 10)): start_time = time.time() print('Training with {}% of data'.format((n + 1) * 10)) idx = np.random.choice(n_train, n_samples, replace=False) train_img_sample = np.array(trainingDataList)[idx].tolist() train_labels_sample = np.array( digit_data.digit_train_labels)[idx].tolist() errors = classifier.train(train_img_sample, train_labels_sample) print('errors over 3 iterations', errors) print('Validating...') validation_guesses = classifier.classify(validationDataList)