{"id":26504651,"url":"https://github.com/lbirkert/digit-recognition","last_synced_at":"2026-05-19T15:34:01.577Z","repository":{"id":246683542,"uuid":"821841863","full_name":"lbirkert/digit-recognition","owner":"lbirkert","description":"[from-scratch] feed forward neural network that can recognize handwritten digets","archived":false,"fork":false,"pushed_at":"2024-07-17T20:51:35.000Z","size":14,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-07-18T01:03:02.505Z","etag":null,"topics":["feedforward-neural-network","machine-learning","numpy","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lbirkert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-06-29T15:34:23.000Z","updated_at":"2024-07-18T01:03:07.221Z","dependencies_parsed_at":"2024-07-23T19:49:24.108Z","dependency_job_id":null,"html_url":"https://github.com/lbirkert/digit-recognition","commit_stats":null,"previous_names":["lbirkert/digit_recognition_from_scratch","lbirkert/digit-recognition"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbirkert%2Fdigit-recognition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbirkert%2Fdigit-recognition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbirkert%2Fdigit-recognition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lbirkert%2Fdigit-recognition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lbirkert","download_url":"https://codeload.github.com/lbirkert/digit-recognition/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244683342,"owners_count":20493167,"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":["feedforward-neural-network","machine-learning","numpy","python"],"created_at":"2025-03-20T20:12:37.295Z","updated_at":"2026-05-19T15:33:56.529Z","avatar_url":"https://github.com/lbirkert.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"`## digit-recognition ##`\n\nThis is my attempt to create a digit recognition\nneural network from scratch (without machine learning\nframeworks, only numpy + math).\n\n----\n\n`## Model info ##`\n\n- It consists of one input layer (for the 28 * 28 grayscale\npixel values), 2 hidden layers (each with 10 nodes) and\none output layer (which corresponds which digit is the most likely).\n- It uses relu activation layers for the hidden layers and\na softmax activation layer for the output layer.\n- It uses the MSE as the loss function. The error in this case is the\nmodel output subtracted by a one hot vector of the expected output.\n- It uses standard backpropagation with a constant learning rate and\nstochastic learning to update the weight matrix.\n- The weights are initialized using a normal distribution, as described\nin the research paper of Le Cun et al.\n- I could get it accurate up to 96%.\n- It is licensed under the MIT license.\n\n----\n\n`## Dependencies ##`\n\n- numpy\n- matplotlib\n\n----\n\n`## Training the model ##`\n\nTo start training pleas use `python3 main.py`.\nThis will initialize the model and start training. Periodically a matplotlib\nwindow will be opened showing a sample of test images and the model prediction\nto visualize the model's accuracy.\n\n----\n\n\u0026copy; 2024 Lucas Birkert - All Rights Reserved\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbirkert%2Fdigit-recognition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flbirkert%2Fdigit-recognition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flbirkert%2Fdigit-recognition/lists"}