def main(): brain = NeuralNetwork(784, 3000, 10) brain.set_learning_rate(.001) counter = 0 training_images_norm = normalize_images(training_images) testing_images_norm = normalize_images(testing_images) for image, label in zip(training_images_norm, training_labels): counter += 1 print( f"Backward propogating the {counter} image, which was a {label} with array: {labels_dict[label]}." ) brain.train_tanh(image.ravel(), labels_dict[label]) #learning_rate_annealing_cyclic(brain, counter) #brain, iteration #print(f"Learning Rate: {brain.learning_rate}") if counter >= 1000: break correct = 0 for i in range(len(testing_images_norm)): output = brain.feedforward_tanh(testing_images_norm[i].ravel()) output = output.ravel() #print(testing_images[i].ravel()) print(output) print( f"The letter was thought to be {output.argmax()} by the Neural network, but was actually {testing_labels[i]}." ) if output.argmax() == testing_labels[i]: correct += 1 print("IT WAS CORRECT!") print(correct / i)