Final Presentation
Final Version of Thesis
Application
~Link To Github Repository~
Inspired by Python's TensorFlowand Java's DL4J, I created a neural network package that ingested 10,000 images of handwritten numbers from the MNIST dataset. The GUI seen on the right, allows the user to develop a singular neural network to learn to categorize numbers or develop two generative adversarial networks to generate original images of numbers.
![](Images/app_initial.png)
Once you start the program, you are presented with a basic GUI where you have the option to choose between "Train NN", "Test NN", "Generate", and "Reset". If you click "Train NN", one of the neural networks will process 3,000 images and learn to classify the numbers 0 through 9. Once you have trained the neural network, you can verify the neutwork's ability to classify numbers by clicking "Test NN". When you click "Test NN", a random number will be selected from the dataset of 10,000. The program will draw that number and the neural network will attempt to label it.
![](Images/app_test.png)
If you would like to generate a number, I recommend starting with a un-trained network. If you start with an already trained discriminator network, it will dominate the generator network, and a number will not be generated. Thus, if "Train NN" has been clicked, I recommend clicking "Reset" before clicking "Generate".
![](Images/app_noise.png)
When you click "Generate", the program runs through one training cycle, and the final product of the generator network is drawn in the right side of the GUI. Since each click of the "Generate" button creates one training cycle, it may take six to eight clicks to generate a product. The training is a minmax between the discriminator network and the generator network, thus there is a chance a number won't be produced. If this is the case, click "Reset" and try again.
![](Images/app_product.png)