Skip to content

brandonmburroughs/hello-tensorflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hello Tensorflow

These are some simple Tensorflow scripts I put together while listening to Martin Görner's talk, Tensorflow and Deep Learning Without a PhD.

The scripts directory contains the scripts and the output_images directory contains training/test accuracy and cross entropy plots for each neural network.

Notes about the various networks and outputs plots

Simple neural network

The simple neural network is straightforward but only achieves ~92% accuracy, poor performance for digit recognition on the MNIST dataset.

Simple neural network

Max test accuracy achieved = 92.70%

Deep network

The deep network achieves better performance, getting closer to ~98% accuracy, but its performance is unstable. This can be seen in the jagged test accuracy that never stabilizes.

Deep network

Max test accuracy achieved = 98.15%

Deep network with learning rate decay

Decaying the learning rate helps stabilize model performance as seen in the test accuracy smoothing in later iterations of training. However, this makes the overfit, seen in the increasing test cross entropy, more evident.

Deep network with learning rate decay

Max test accuracy achieved = 98.12%

Deep network with learning rate decay and dropout

Normalization via dropout decreases the overfit, as seen in the stable test cross entropy, but does not increase performance.

Deep network with learning rate decay and dropout

Max test accuracy achieved = 98.08%

Convolutional neural network

Adding convolutions to the neural network helps recover the dimensions and shape of the data, increasing performance. However, the overfit of test data, as seen in the increasing test cross entropy, returns.

Convolutional neural network

Max test accuracy achieved = 98.75%

Convolutional neural network with dropout

Adding dropout to the convolutional neural network once again reduces overfit and even provides a slight performance boost.

Convolutional neural network with dropout

Max test accuracy achieved = 99.12%

Convolutional neural network with batch normalization

Using batch normalization gives another performance increase.

Convolutional neural network with batch normalization

Max test accuracy achieved = 99.22%

Convolutional neural network with batch normalization and dropout

Using both batch normalization and dropout doesn't seem to provide any benefit.

Convolutional neural network with batch normalization and dropout

Max test accuracy achieved = 99.14%