Added convolutional neural network (CNN) for MNIST digit classification.#7
Open
capn-freako wants to merge 5 commits intobrunjlar:masterfrom
Open
Added convolutional neural network (CNN) for MNIST digit classification.#7capn-freako wants to merge 5 commits intobrunjlar:masterfrom
capn-freako wants to merge 5 commits intobrunjlar:masterfrom
Conversation
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
Rom4enya
approved these changes
Jan 27, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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: