-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MNIST example #242
MNIST example #242
Conversation
Conflicts: src/CMakeLists.txt src/nupic/algorithms/SpatialPooler.cpp src/nupic/algorithms/SpatialPooler.hpp
removes changes done in this MNIST branch. TODO revert this commit later to continue the development
@breznak,
We need download this. Uncompressed, the dataset is 53 Megabytes so we should not check it into git! The dataset has an authoritative source on the internet. A python script can download, unzip and uncompress the files in a cross platform way. I think that numenta has an example downloader script. Data source: http://yann.lecun.com/exdb/mnist/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my comments about the PR
A python script can download, unzip and uncompress the files in a cross
platform way. I think that numenta has an example downloader script.
I think even cmake will be able to download and extract it.
official sources
Yes, but I wonder if the csv wouldn’t be a better format? It’s not that
this is some critical data, and we can verify the content matches the
original sources, cmake can verify checksums for us.
…--
Marek Otahal :o)
|
Yes, quite simple. This is a great tool to confirm that we have good results but should it be in the CI? |
This is a great tool to confirm that we have good results but should it
be in the CI?
So far it’s an example, so it doesn’t have to be a test.
Although it runs only 40s , not that long.
Or we could later do performance tests that run nightly, as Matt mentioned
today
…--
Marek Otahal :o)
|
bug if synapse is empty
os/ImportFilesystem.hpp
add it to tests, examples where needed
old version was kept in this PR, unrelated to MNIST and was causing problems with tests
Finally the PR is ready.
apparently, global inhibition is not suitable for 2D images. Could you please retry the parameter optimization some time with local inhibition? It'll take a long time, but should perform no worse than the proposed marcoloumn-aware inhibition. Otherwise, please review as is. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please turn back on shared library.
Thanks :) I spent a week getting shared lib to work so I am a little attached to it. |
but much more stable/semantic representations than global inh
@ctrl-z-9000-times I am still wondering why the accuracy is so not-good :) with local inhibition (low perf with global inh is "intuitive") compared to your "extended SP". If I understand it, the clever idea with MacroCol SP/inh is that you use the n+1-th dimension to force X cells to cover the (subsets) of the same portion of input space/potential pool. |
That's half of it. The other half is to use global inhibition over the N+1-th dimension, and treat everything in the first N dimensions as a totally separate inhibition areas. The clever trick here is to treat every pair of cells which could possibly interact as either:
|
Bump, please review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. 👍
@ctrl-z-9000-times you have your implementation GridCell as an extension of SP. I think it is also useful for Mnist classification. Any comment from you? |
this is work from @ctrl-z-9000-times , I was playing with the branch and wanted to help, get it in faster.
merged recent master
reverted changes to SP, this PR aims only to add MNIST; revert 3193892 to continue where you left off.
bundle (how?) MNIST data
the example now segfaults
optimize parameters for better score! (currently
11%30%43%)