Skip to content

Added convolutional neural network (CNN) for MNIST digit classification.#7

Open
capn-freako wants to merge 5 commits intobrunjlar:masterfrom
capn-freako:master
Open

Added convolutional neural network (CNN) for MNIST digit classification.#7
capn-freako wants to merge 5 commits intobrunjlar:masterfrom
capn-freako:master

Conversation

@capn-freako
Copy link

This pull request adds a convolutional neural network (CNN) for MNIST digit classification.

There are actually two CNN models included in the new examples/MNIST/MNIST_cnn.hs file:

  • A complex model, composed of two convolutional layers, both using a maxPool operation to condense their outputs.
    This model doesn't work (It doesn't learn.). And it is, currently, commented out in the code. It is my hope to get it working soon.

  • A simple model, using a single convolutional layer and no maxPooling.
    This model achieves 90% accuracy after 550 generations.

The new executable is called MNIST_cnn.

I run it, like this:

stack build
stack exec MNIST_cnn

This first version of a CNN digit classifier compiles and runs.
However, it doesn't learn. Either I've got a bug in my code, or
the structure I've chosen just isn't very good for digit classification.
Code is now wired to output what I believe is one of the 5x5 convolution
kernels in the first processing layer, every 5 iterations. And it doesn't
appear to be changing.

Might this be caused by "representing" maxPool as a differentiable function?
Might that be breaking the back-propagation?
reached accuracy of 0.9018 after 550 generations
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants