예제 #1
0
파일: example.py 프로젝트: d-e-lu/NN
def main():

    lsizes = np.array(([784], [50], [30], [10]))
    learning_rate = 0.4
    bias_learning_rate = 0.4
    n = ANN.ArtificialNeuralNet(lsizes, ANN.squared_error, learning_rate,
                                bias_learning_rate)
    training_data, validation_data, testing_data = mnist_loader.load_data_wrapper(
    )

    nc = ANN.NetworkChecker()

    if nc.check(n, training_data[0][0], training_data[0][1].T.ravel()):
        n.train(training_data)
        percentage, correct, incorrect = n.test(
            testing_data=testing_data, output_size=training_data[0][1].size)
        print percentage, "%"
        print "Correct [1-9]", correct
        print "Incorrect [1-9]", incorrect
        # n.save_weights(percentage, lsizes, learning_rate)

    user_input = raw_input(
        "Please select image file to detect. Or type q to quit.\n")

    while True:
        if user_input == "q":
            break
        elif user_input == "draw":
            PygamePaint.draw()
            raw_image = Image.open("screenshot.png").convert('L')
        else:
            try:
                raw_image = Image.open(user_input).convert('L')
            except:
                print "Not a valid file. Please Try again\n"
                user_input = raw_input(
                    "Please select image file to detect. Or type q to quit.\n")
                continue

        scaled_image = raw_image.resize((28, 28))
        scaled_image.save("scaled.png")
        image = np.reshape(np.asarray(scaled_image), (1, 784))
        image = np.true_divide(image, 255)

        vals = n.forward(image)
        print "I see a {}".format(np.argmax(vals))
        print vals
        user_input = raw_input(
            "Please select image file to detect. Or type q to quit.\n")