{"id":28522647,"url":"https://github.com/ishanmanchanda/digits","last_synced_at":"2025-07-04T09:31:13.616Z","repository":{"id":38184004,"uuid":"200817482","full_name":"IshanManchanda/digits","owner":"IshanManchanda","description":"Hand-written digit classification using a Neural Network built from scratch.","archived":false,"fork":false,"pushed_at":"2023-02-21T00:01:53.000Z","size":189392,"stargazers_count":4,"open_issues_count":14,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-03T21:27:34.016Z","etag":null,"topics":["hacktoberfest","machine-learning","neural-network","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/IshanManchanda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-06T09:13:39.000Z","updated_at":"2022-01-02T12:19:37.000Z","dependencies_parsed_at":"2023-02-09T14:00:57.463Z","dependency_job_id":null,"html_url":"https://github.com/IshanManchanda/digits","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IshanManchanda%2Fdigits","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IshanManchanda%2Fdigits/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IshanManchanda%2Fdigits/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IshanManchanda%2Fdigits/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IshanManchanda","download_url":"https://codeload.github.com/IshanManchanda/digits/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IshanManchanda%2Fdigits/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258851851,"owners_count":22768097,"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":["hacktoberfest","machine-learning","neural-network","numpy","python"],"created_at":"2025-06-09T09:30:42.514Z","updated_at":"2025-07-04T09:31:13.591Z","avatar_url":"https://github.com/IshanManchanda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# digits\nHand-written digit classification using a Neural Network built from scratch.\n\n# Why digits?\nThe idea of implementing a neural network from scratch came to me while I was working through Prof. Andrew Ng's Machine Learning course on Coursera.\nA lot of concepts involved in neural networks made intuitive sense to me, but I felt I could do more on the mathematical background of it.\nSpecifically, I wanted to get an idea of how computations can be vectorized with different activation and cost functions.\n\ndigits uses the Leaky Rectified Linear Unit (LReLU) and the Softmax functions as activation functions for the hidden layers and output layer (respectively),\nand the Cross-Entropy Loss (or Log Loss) function as the cost function. The optimization function is Mini-batch Stochastic Gradient Descent (mini-batch SGD), and the partial derivatives are computed using Backpropagation. Furthermore, digits also uses preprocessing techniques such as deskewing on the MNIST dataset. Images drawn by the user undergo preprocessing as well, with additional steps such as normalization. \n\nAside from implementation, I also manually derived the vectorized formulae for the partial derivatives primarily using dimensional analysis.\n\n### Major Technologies Used\n- Python 3\n- Numpy\n- Matplotlib\n- Scipy\n- Pillow\n- Weights \u0026 Biases\n\n\u003c!--\n### Things I've Learnt\n- Deriving vectorized partial derivatives using dimensional analysis\n- Implementing mini-batch SGD in a vectorized form using numpy\n- Designing a training pipeline to run experiments and fine-tune hyperparameters\n- \n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishanmanchanda%2Fdigits","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fishanmanchanda%2Fdigits","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishanmanchanda%2Fdigits/lists"}