{"id":19316661,"url":"https://github.com/wisskirchenj/neural-network-from-scratch","last_synced_at":"2026-05-09T05:06:39.712Z","repository":{"id":110253553,"uuid":"589518781","full_name":"wisskirchenj/neural-network-from-scratch","owner":"wisskirchenj","description":"Create a fully connected neural network with Zalando's Fashion MNIST image data sets","archived":false,"fork":false,"pushed_at":"2023-01-29T14:49:34.000Z","size":140,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T04:42:24.536Z","etag":null,"topics":["categorization","machine-learning","neural-network","pandas","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/wisskirchenj.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":"2023-01-16T10:06:09.000Z","updated_at":"2023-06-19T00:36:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd7bce63-fd9b-4ef4-a4e9-03bbacbe772d","html_url":"https://github.com/wisskirchenj/neural-network-from-scratch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wisskirchenj/neural-network-from-scratch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fneural-network-from-scratch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fneural-network-from-scratch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fneural-network-from-scratch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fneural-network-from-scratch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wisskirchenj","download_url":"https://codeload.github.com/wisskirchenj/neural-network-from-scratch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fneural-network-from-scratch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32807862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["categorization","machine-learning","neural-network","pandas","python3"],"created_at":"2024-11-10T01:12:09.554Z","updated_at":"2026-05-09T05:06:39.695Z","avatar_url":"https://github.com/wisskirchenj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IDEA EDU Course\n\nGraduate project implemented in the track 'Machine Learning Algorithms from Scratch' of hyperskill.org JetBrains Academy.\n\n## Technology / External Libraries\n\n- Python 3.11.1, \n- Pandas 1.5.2\n- with packages: numpy, matplotlib, tqdm, requests, os, collections, unittest, unittest.mock\n\n## Repository Contents\n\nThe sources of main project tasks (7 stages) and pytest testing.\n\n## Installation\n\nInstall the wheel file using pip after clone/fork:\n\n\u003e $ pip install dist/neural_network_from_scratch-3.11.1-py3-none-any.whl\n\n## Program description\n\nThe project is a first experience in every aspect of creating a fully connected neural network. We will code feedforward\nnetworks and implement backpropagation and weight initialization. We will also create a training loop and visualize the\nmodel's training process. We use Zalando-owned \"Fashion MNIST\" categorized image data, which are offered split into\nseparate train and test data sets. The project serves as a solid base to continue with neural network science.\n\nHave fun!\n\n## Project completion\n\nProject was completed on 29.01.23\n\n## Progress\n\n15.01.23 Project started - gitHub repo and project structure setup.\n\n15.01.23: Stage 1 completed - load Zalando-owned \"Fashion MNIST\" categorized image data as CSV over http, which are offered as\nseparate train and test data sets. Import the two data sets into Panda DataFrames and distribute them to x- and y-arrays\nusing One-Hot-Encoding. Implement a Xavier initialization and sigmoid function to initialize neural network weights.\n\n18.01.23: Stage 2 completed - implement a single neuron layer network, initialize network weights and neuron biases using uniformly\ndistributed random numbers, start training the network - only implementing feedforward step. Have it dry-run with some\nfew image data.\n\n23.01.23: Stage 3 completed - implement full epoch training cycles for the single neuron layer. An epoch cycle consists\nof a forward step, a backward propagation and an update of the networks weights and biases. Iterative epochs train the\nmodel on the training data set.\n\n25.01.23: Stage 4 completed - accuracy measure of category recognition on test data set implemented. Convenience method \nimplemented on network to run an epoch on full train data with parameterizable batch size and return accuracy afterwards.\nHave 20 training iterations and track and plot results with matplotlib.\n\n28.01.23: Stage 5 completed - setup of a **two layer neural network** with a hidden layer of (default) 64 neurons. This\nstage does a forward step with 2 image records of the training set through the network.\n\n29.01.23: Stage 6 completed - run an epoch-cycle for the **two layer neural network** and consider the mean square error.\nUse inheritance to derive the 1-layer and 2-layer network from a common base class with implemented methods for both.\n\n29.01.23: Final Stage 7 completed - do full 20 epochs on the 60k train data and measure on test data after\neach epoch. Setup is with batch_size=100 and eta=0.5 as with the 1-layer neural in stage 4. The results improve\nform accuracy of 85.5 % with 1 layer to 88% with 2 layers, while simultaneously increasing runtime by\nabout a factor of 4. (~ 13 sec per epoch now)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fneural-network-from-scratch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwisskirchenj%2Fneural-network-from-scratch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fneural-network-from-scratch/lists"}