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