{"id":24974426,"url":"https://github.com/lamteteeow/mnistneuralnetwork","last_synced_at":"2025-03-29T06:45:10.463Z","repository":{"id":275305168,"uuid":"925238484","full_name":"lamteteeow/MnistNeuralNetwork","owner":"lamteteeow","description":"Implement neural network to classify MNIST dataset in C++ with ADAM optimizer using Eigen library","archived":false,"fork":false,"pushed_at":"2025-02-01T14:36:42.000Z","size":12797,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T15:32:40.787Z","etag":null,"topics":["adam-optimizer","cpp","deep-learning","neural-network"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lamteteeow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T13:55:57.000Z","updated_at":"2025-02-01T15:32:33.000Z","dependencies_parsed_at":"2025-02-01T15:42:45.535Z","dependency_job_id":null,"html_url":"https://github.com/lamteteeow/MnistNeuralNetwork","commit_stats":null,"previous_names":["lamteteeow/mnistneuralnetwork"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamteteeow%2FMnistNeuralNetwork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamteteeow%2FMnistNeuralNetwork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamteteeow%2FMnistNeuralNetwork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamteteeow%2FMnistNeuralNetwork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lamteteeow","download_url":"https://codeload.github.com/lamteteeow/MnistNeuralNetwork/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237009079,"owners_count":19240341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adam-optimizer","cpp","deep-learning","neural-network"],"created_at":"2025-02-03T20:04:05.639Z","updated_at":"2025-02-03T20:04:06.578Z","avatar_url":"https://github.com/lamteteeow.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AdvPT Project WS 2024: Handwriting Recognition (MNIST)\n\u003e from `Advance Programming Techniques` course\n\u003e at `FAU Erlangen-Nuremberg`\n\nThis project template contains some files to get your project started.\n\nAs described in the project sheet, your task is to develop a fully-connected neural network in C++ for the recognition\nof the handwritten digits found in the MNIST dataset.\nWe test your implementation by running the following shell scripts with our own (and not publicly available) datasets:\n\n* `build.sh`: Shall contain all necessary code to prepare/build your executable(s)\n* `read_dataset_images.sh`: Checks if you can successfully read in, convert and write an MNIST dataset image to file.\n* `read_dataset_labels.sh`: Checks if you can successfully read in and write an MNIST dataset label to file.\n* `mnist.sh`: Triggers the training and testing of your neural network implementation.\n\nPlease note that these scripts are responsible for testing different aspects of your implementation and, thus, expect\ndifferent arguments.\nYou can find a more detailed description in the assignment sheet.\nInitially, all shell scripts only contain dummy echo statements.\n\n**The shell scripts must be at the top level of your repository! So do not move them somewhere else.**\n\nObviously you can also modify this README file to document your project.\n\nBesides the shell scripts, we also have the following directories:\n\n* `pytorch/`:\n  Reference code and playground in Python to demonstrate the program flow of a fully-connected neural network.\n  The results (e.g. the development of the loss) obtained by the Python script **shall not be seen as a ground truth**\n  but should provide intuition how a NN of our topology should behave, e.g. what order of magnitude for the prediction\n  accuracy can be achieved.\n* `expected-results/`:\n  Set of reference solutions used by the CI pipeline.\n  Inspect the `.gitlab-ci.yml` to see which `expected-results` file belongs to which test.\n* `mnist-datasets/`:\n  Binary files containing image and label data of the MNIST dataset for training/testing the neural network.\n* `mnist-configs/`:\n  Configuration files passed to the `mnist.sh` script that provide input arguments to steer the program flow (e.g.\n  hyperparameters) of the neural network.\n* `src/tensor.hpp`:\n  Reference solution for the tensor assignment. We recommend you to use this implementation as central datastructure for\n  image/label data, the weights and biases for your network, etc. Keep in mind that this implementation is **slow** and\n  potentially needs improvements to overcome the time limits of the evaluation.\n* `src/matvec.hpp`: Reference solution for a matrix-vector multiplication using the tensor class. Can be also a\n  potential target for optimizations.\n\nThe file `.gitlab-ci.yml` triggers a continuous integration pipeline that clones, builds, and runs your project.\nIt does so using the datasets in `mnist-datasets/`. Note that **this is not the evaluation**.\nWe included this, so you can make sure that your code builds on our machines without having to wait for the evaluation.\nThe pipeline is triggered everytime you push a new commit to your repository.\n\n**Please only trigger the pipeline when you actually want to test your code. Otherwise, we recommend adding `[skip ci]`\nat the end of your commit messages.**\n\nWe suggest that you **do not modify** `.gitlab-ci.yml` unless you know what you are doing.\nThere should be no need to modify that file anyway.\nMoving/renaming paths such as the `mnist-datasets/` directory or modifying its content might break the CI pipeline.\n\n**If you abuse the CI resources for anything unrelated to the project we will disqualify your group.**\n\nObviously, you can easily revert to an earlier project state via `git revert` in case you break something by accident.\n\nGood luck!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamteteeow%2Fmnistneuralnetwork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flamteteeow%2Fmnistneuralnetwork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamteteeow%2Fmnistneuralnetwork/lists"}