Skip to content

[CLAIMED Bounty] - Extend application to digest the EMNIST dataset #11

@mi3law

Description

@mi3law

LINK TO GRAYSCALE MNIST: https://github.com/Seqaeon/MNIST_streamlit

Our weightless neural networks framework running on MNIST and MNIST-grayscale already achieves great results in terms of training efficiency-- we can get 60-85%+ accuracy from training on <1000 samples (MNIST is usually 60k training samples) with vastly smaller agents than deep learning / CNNs, with the variance due to the effect of different neural connection strategies. Try it at mnist.aolabs.ai or load up the app locally through the repo with Streamlit or Docker.

Now it is time to run our application against EMNIST –the extended MNIST database, extended to include 62 output classes instead of just 0-9, more here– to see how that affects training speed and accuracy in pursuit of our mission for more efficient, continuously learning AI. Since the code behind our MNIST efforts is open source, we're opening up this project as a bounty to our community-- we'll pay whoever builds this and recognize them as a contributor!

Bounty Reward
$200

Project Details & Scope
What does this project entail? To help you scope it out and get started, here are the main changes to the existing code that you'd need to think through, make, and test as part of the work here:

  • Download the EMNIST data (source), either storing it on disk as a pickle file (how we did the MNIST app) or connecting to it some other way (through a library), whatever works best
  • In the streamlit frontend,
    - Change the current "select training datasets” dropdown to include only the standard fonts, moving MNIST to a the new dropdown
    - Add a new dropdown for dataset selection to accommodate for MNIST and the different EMNIST classes (ByClass, Letters, Digits only)
    - After the selector, add an if statement that if the user selects ByClass, Letters, and Digits, the program should ignore that Letters and Digits are selected because they are already included in the ByClass data set.
  • Change the AO agent architecture accordingly - the grayscale MNIST agent is currently configured only with 28x28 (784) binary neurons in the input and inner state layers, see the current architecture here; this needs to be changed to 28x28 channels with 6 binary neurons per channel to encode for each pixel's values, (note: you would need to use 6 binary neurons for the arch_z output layer, since 6 bits can encode 64 values and there are 62 output classes in EMNIST.
  • Change anything else in the application( here ) to match the new larger EMNIST output.
  • Make sure it all works!

Ready?

Should you work on this project, the AO team is here to support you throughout your development (addressing questions, providing more context, even pair-programming with you, etc.)-- say hi on discord or meet with our founder Ali here.

To take on this project, please comment on this issue or email eng@aolabs.ai.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions