A Convolutional Neural Net that has been trained to read in an image and tell you whether the image is of a Cat or of a Dog using Keras and Tensorflow
This is a fairly well known challenge from Microsoft, who also provided the dataset. I began with about 1GB of dog and cat images organized into two folders. The first thing I decided to do was set all of the images to grayscale, this reduces image sizes by 3-fold and greatly helps with training speed. If you look through the images, you'll notice that they are various sizes, so I decided to resize all of the images to the same size.
One tool I had never gotten the chance to use before was Tensorboard. It is a fantastic tool packaged for Tensorflow that allows you to track the progress of your neural net as it trains. I have posted a static image here, but the tool itself lives within a browser and is completely interactive showing Accuracy, Loss, Validation Accuracy and Validation Loss.
When it was all said and done, training took roughly 2 hours and yielded a validation loss of 0.04. This project was loads of fun, and I will definitely be trying to do more stuff like this in the near future! Maybe a 'Not a hot dog' NN?