{"id":18551327,"url":"https://github.com/morvanzhou/npnet","last_synced_at":"2025-10-28T20:25:05.760Z","repository":{"id":62591376,"uuid":"154830079","full_name":"MorvanZhou/npnet","owner":"MorvanZhou","description":"Build neural networks based only on Numpy","archived":false,"fork":false,"pushed_at":"2023-02-14T02:40:31.000Z","size":11423,"stargazers_count":169,"open_issues_count":1,"forks_count":33,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-08T21:53:28.580Z","etag":null,"topics":["backpropagation","layer","neural-network","numpy","simple"],"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/MorvanZhou.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":"2018-10-26T12:19:53.000Z","updated_at":"2025-07-20T11:51:15.000Z","dependencies_parsed_at":"2025-01-08T05:36:02.296Z","dependency_job_id":null,"html_url":"https://github.com/MorvanZhou/npnet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MorvanZhou/npnet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorvanZhou%2Fnpnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorvanZhou%2Fnpnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorvanZhou%2Fnpnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorvanZhou%2Fnpnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MorvanZhou","download_url":"https://codeload.github.com/MorvanZhou/npnet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorvanZhou%2Fnpnet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276533945,"owners_count":25659250,"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","status":"online","status_checked_at":"2025-09-23T02:00:09.130Z","response_time":73,"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":["backpropagation","layer","neural-network","numpy","simple"],"created_at":"2024-11-06T21:08:39.964Z","updated_at":"2025-09-23T07:18:19.008Z","avatar_url":"https://github.com/MorvanZhou.png","language":"Python","readme":"# Simple Neural Networks\nThis is a repo for building a simple Neural Net based only on **[Numpy](http://www.numpy.org/)**.\n\nThe usage is similar to [Pytorch](https://pytorch.org/).\nThere are only limited codes involved to be functional.\nUnlike those popular but complex packages such as Tensorflow and Pytorch,\nyou can dig into my source codes smoothly.\n\nThe main purpose of this repo is for you\nto understand the code rather than implementation.\nSo please feel free to read the codes.\n\n\n## Simple usage\nBuild a network with a python class and train it.\n\n```python\nimport npnet\n\nclass Net(npnet.Module):\n    def __init__(self):\n        super().__init__()\n        self.l1 = npnet.layers.Dense(n_in=1, n_out=10, activation=npnet.act.tanh)\n        self.out = npnet.layers.Dense(10, 1)\n\n    def forward(self, x):\n        x = self.l1(x)\n        o = self.out(x)\n        return o\n```\n\nThe training procedure starts by defining an optimizer and loss.\n\n```python\nnet = Net()\nopt = npnet.optim.Adam(net.params, lr=0.1)\nloss_fn = npnet.losses.MSE()\n\nfor _ in range(1000):\n    o = net.forward(x)\n    loss = loss_fn(o, y)\n    net.backward(loss)\n    opt.step()\n```\n\n\n\n## Demo\n* A naked and step-by-step [network](https://github.com/MorvanZhou/npnet/tree/master/tests/simple_nn.py) without using my module.\n* [Train regressor](https://github.com/MorvanZhou/npnet/tree/master/tests/train_regressor.py)\n* [Train classifier](https://github.com/MorvanZhou/npnet/tree/master/tests/train_classifier.py)\n* [Train CNN](https://github.com/MorvanZhou/npnet/tree/master/tests/train_cnn.py)\n* [Save and restore a trained net](https://github.com/MorvanZhou/npnet/tree/master/tests/save_model.py)\n\n\n## Install\n\n```\npip install npnet\n```\n\n## Download or fork\nDownload [link](https://github.com/MorvanZhou/npnet/archive/master.zip)\n\nFork this repo:\n```\n$ git clone https://github.com/MorvanZhou/npnet.git\n```\n\n## Results\n![img](https://raw.githubusercontent.com/MorvanZhou/npnet/master/demo.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorvanzhou%2Fnpnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorvanzhou%2Fnpnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorvanzhou%2Fnpnet/lists"}