{"id":13648212,"url":"https://github.com/norse/norse","last_synced_at":"2025-11-17T03:06:04.464Z","repository":{"id":39579373,"uuid":"223287445","full_name":"norse/norse","owner":"norse","description":"Deep learning with spiking neural networks (SNNs) in PyTorch.","archived":false,"fork":false,"pushed_at":"2025-09-23T18:43:24.000Z","size":114958,"stargazers_count":759,"open_issues_count":59,"forks_count":93,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-09-23T20:30:38.853Z","etag":null,"topics":["autograd","deep-learning","gpu","machine-learning","neural-network","neuromorphic","pytorch","pytorch-lightning","spiking-neural-networks","tensor"],"latest_commit_sha":null,"homepage":"https://norse.github.io/norse/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/norse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["cpehle","jegp"]}},"created_at":"2019-11-22T00:00:15.000Z","updated_at":"2025-09-23T18:39:36.000Z","dependencies_parsed_at":"2024-03-03T23:21:48.191Z","dependency_job_id":"4f1aa06c-5436-42ef-a1a9-53b59741438d","html_url":"https://github.com/norse/norse","commit_stats":{"total_commits":389,"total_committers":22,"mean_commits":"17.681818181818183","dds":0.480719794344473,"last_synced_commit":"5b05e03f96f329ca8f58ed8a42658eb1d4253233"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/norse/norse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norse%2Fnorse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norse%2Fnorse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norse%2Fnorse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norse%2Fnorse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/norse","download_url":"https://codeload.github.com/norse/norse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/norse%2Fnorse/sbom","scorecard":{"id":694477,"data":{"date":"2025-08-11","repo":{"name":"github.com/norse/norse","commit":"90b75a233583123c4e5f27b7a420496111dfa16e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":6,"reason":"Found 17/25 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"6 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/benchmark_norse.yml:1","Warn: no topLevel permission defined: .github/workflows/docker_build.yml:1","Warn: no topLevel permission defined: .github/workflows/docker_publish.yml:1","Warn: no topLevel permission defined: .github/workflows/documentation_build.yml:1","Warn: no topLevel permission defined: .github/workflows/documentation_publish.yml:1","Warn: no topLevel permission defined: .github/workflows/python_build.yml:1","Warn: no topLevel permission defined: .github/workflows/python_publish_pypi.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Lesser General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker_build.yml:7"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Vulnerabilities","score":0,"reason":"12 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2021-874 / GHSA-2vj5-px25-gjrp","Warn: Project is vulnerable to: GHSA-4cv3-v7pv-rfhf","Warn: Project is vulnerable to: GHSA-98fp-7v67-4v3q","Warn: Project is vulnerable to: PYSEC-2022-181 / GHSA-r5qj-cvf9-p85h"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark_norse.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/benchmark_norse.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/benchmark_norse.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/benchmark_norse.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/benchmark_norse.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/benchmark_norse.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker_build.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_build.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docker_publish.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/docker_publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation_build.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/documentation_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation_build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/documentation_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation_publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/documentation_publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/documentation_publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/documentation_publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/documentation_publish.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/documentation_publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_build.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_build.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_build.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python_build.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_build.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_build.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_publish_pypi.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_publish_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_publish_pypi.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/norse/norse/python_publish_pypi.yml/main?enable=pin","Warn: containerImage not pinned by hash: norse/benchmark/docker/Dockerfile.bindsnet:1","Warn: containerImage not pinned by hash: norse/benchmark/docker/Dockerfile.genn:1","Warn: containerImage not pinned by hash: norse/benchmark/docker/Dockerfile.norse:1","Warn: containerImage not pinned by hash: publish/Dockerfile:1: pin your Docker image by updating python:3.12-slim to python:3.12-slim@sha256:d67a7b66b989ad6b6d6b10d428dcc5e0bfc3e5f88906e67d490c4d3daac57047","Warn: containerImage not pinned by hash: publish/Dockerfile.cuda:1: pin your Docker image by updating nvidia/cuda:12.9.0-cudnn-runtime-ubuntu24.04 to nvidia/cuda:12.9.0-cudnn-runtime-ubuntu24.04@sha256:420a9cd01e9994695cb114e0a484fd3f4fa725cde05874826752899632cb5e76","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.bindsnet:14","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.bindsnet:17","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.genn:18","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.norse:7","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.norse:8","Warn: pipCommand not pinned by hash: norse/benchmark/docker/Dockerfile.norse:11","Warn: pipCommand not pinned by hash: publish/Dockerfile:10","Warn: pipCommand not pinned by hash: publish/Dockerfile:11","Warn: pipCommand not pinned by hash: publish/Dockerfile.cuda:10","Warn: pipCommand not pinned by hash: publish/Dockerfile.cuda:11","Warn: pipCommand not pinned by hash: .github/workflows/benchmark_norse.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/benchmark_norse.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/benchmark_norse.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/benchmark_norse.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/documentation_build.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/documentation_build.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/documentation_build.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/documentation_publish.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/documentation_publish.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/documentation_publish.yml:26","Warn: pipCommand not pinned by hash: .github/workflows/documentation_publish.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/python_build.yml:75","Warn: pipCommand not pinned by hash: .github/workflows/python_build.yml:76","Warn: pipCommand not pinned by hash: .github/workflows/python_build.yml:38","Warn: pipCommand not pinned by hash: .github/workflows/python_build.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/python_build.yml:42","Warn: pipCommand not pinned by hash: .github/workflows/python_publish_pypi.yml:18","Warn: pipCommand not pinned by hash: .github/workflows/python_publish_pypi.yml:19","Info:   0 out of  15 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  15 third-party GitHubAction dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   0 out of  28 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T03:15:11.012Z","repository_id":39579373,"created_at":"2025-08-22T03:15:11.012Z","updated_at":"2025-08-22T03:15:11.012Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284813121,"owners_count":27067242,"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-11-17T02:00:06.431Z","response_time":55,"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":["autograd","deep-learning","gpu","machine-learning","neural-network","neuromorphic","pytorch","pytorch-lightning","spiking-neural-networks","tensor"],"created_at":"2024-08-02T01:04:03.773Z","updated_at":"2025-11-17T03:06:04.458Z","avatar_url":"https://github.com/norse.png","language":"Python","funding_links":["https://github.com/sponsors/cpehle","https://github.com/sponsors/jegp"],"categories":["Python","Computation and Communication Optimisation","Frameworks","Applications"],"sub_categories":["Books (by years)"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/norse/norse/main/logo.png\"\u003e\n\u003c/p\u003e\n\nA [deep learning](https://en.wikipedia.org/wiki/Deep_learning) library for [spiking neural networks](https://en.wikipedia.org/wiki/Spiking_neural_network).\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/norse/norse/actions\"\u003e\n        \u003cimg src=\"https://github.com/norse/norse/workflows/Build%20Python/badge.svg\" alt=\"Test status\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/norse/\" alt=\"PyPi Norse\"\u003e\n        \u003cimg src=\"https://img.shields.io/pepy/dt/norse?label=PyPi%20Downloads\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://anaconda.org/conda-forge/norse\" alt=\"Conda Norse repository\"\u003e\n        \u003cimg src=\"https://img.shields.io/conda/dn/conda-forge/norse?label=Conda%20Downloads\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/norse/norse/pulse\" alt=\"Activity\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/last-commit/norse/norse\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://discord.gg/bKsG4tN9wT\"\u003e\n        \u003cimg src=\"https://img.shields.io/discord/723215296399147089\"\n            alt=\"chat on Discord\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.codacy.com/gh/norse/norse?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=norse/norse\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/a9ab846fc6114afda4320badcb8a69c2\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/norse/norse\"\u003e\u003cimg src=\"https://codecov.io/gh/norse/norse/branch/master/graph/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://doi.org/10.5281/zenodo.4422025\"\u003e\u003cimg src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.4422025.svg\" alt=\"DOI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nNorse aims to exploit the advantages of bio-inspired neural components, which are sparse and event-driven - a fundamental difference from artificial neural networks.\nNorse expands [PyTorch](https://pytorch.org/) with primitives for bio-inspired neural components, \nbringing you two advantages: a modern and proven infrastructure based on PyTorch and deep learning-compatible spiking neural network components.\n\n**Documentation**: [norse.github.io/norse/](https://norse.github.io/norse/)\n\n## 1. Getting started\n\nThe fastest way to try Norse is via the [jupyter notebooks on Google collab](https://github.com/norse/notebooks/tree/main/).\n\n## 2. Using Norse\n\nNorse presents plug-and-play components for deep learning with spiking neural networks.\nHere, we describe how to install Norse and start to apply it in your own work.\n[Read more in our documentation](https://norse.github.io/norse/working.html).\n\n### 2.1. Installation\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\nWe assume you are using **Python version 3.8+** and have **installed PyTorch version 1.9 or higher**. \n[Read more about the prerequisites in our documentation](https://norse.github.io/norse/installing.html).\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eMethod\u003c/th\u003e\u003cth\u003eInstructions\u003c/th\u003e\u003cth\u003ePrerequisites\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\n\u003ctr\u003e\n\u003ctd\u003eFrom PyPi\u003c/td\u003e\u003ctd\u003e\u003cdiv class=\"highlight highlight-source-shell\"\u003e\u003cpre\u003e\npip install norse\n\u003c/pre\u003e\u003c/div\u003e\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://pypi.org/\" title=\"PyPi\"\u003ePip\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFrom source\u003c/td\u003e\u003ctd\u003e\u003cdiv class=\"highlight highlight-source-shell\"\u003e\u003cpre\u003e\npip install -qU git+https://github.com/norse/norse\n\u003c/pre\u003e\u003c/div\u003e\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://pypi.org/\" title=\"PyPi\"\u003ePip\u003c/a\u003e, \u003ca href=\"https://pytorch.org/get-started/locally/\" title=\"PyTorch\"\u003ePyTorch\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWith Docker\u003c/td\u003e\u003ctd\u003e\u003cdiv class=\"highlight highlight-source-shell\"\u003e\u003cpre\u003e\ndocker pull quay.io/norse/norse\n\u003c/pre\u003e\u003c/div\u003e\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://www.docker.com/get-started\" title=\"Docker\"\u003eDocker\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFrom Conda\u003c/td\u003e\u003ctd\u003e \u003cdiv class=\"highlight highlight-source-shell\"\u003e\u003cpre\u003e\nconda install norse\n\u003c/pre\u003e\u003c/div\u003e\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://docs.anaconda.com/anaconda/install/\" title=\"Anaconda\"\u003eAnaconda\u003c/a\u003e or \u003ca href=\"https://docs.conda.io/en/latest/miniconda.html\" title=\"Miniconda\"\u003eMiniconda\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nFor troubleshooting, please refer to our [installation guide](https://norse.github.io/norse/pages/installing.html#installation-troubleshooting), [create an issue on GitHub](https://github.com/norse/norse/issues) or [write us on Discord](https://discord.gg/7fGN359).\n\n### 2.2. Running examples\n\nNorse is bundled with a number of example tasks, serving as short, self contained, correct examples ([SSCCE](http://www.sscce.org/)).\nThey can be run by invoking the `norse` module from the base directory.\nMore information and tasks are available [in our documentation](https://norse.github.io/norse/tasks.html) and in your console by typing: `python -m norse.task.\u003ctask\u003e --help`, where `\u003ctask\u003e` is one of the task names.\n\n- To train an MNIST classification network, invoke\n    ```bash\n    python -m norse.task.mnist\n    ```\n- To train a CIFAR classification network, invoke\n    ```bash\n    python -m norse.task.cifar10\n    ```\n- To train the cartpole balancing task with Policy gradient, invoke\n    ```bash\n    python -m norse.task.cartpole\n    ```\n\nNorse is compatible with [PyTorch Lightning](https://pytorch-lightning.readthedocs.io/en/stable/),\nas demonstrated in the [PyTorch Lightning MNIST task variant](https://github.com/norse/norse/blob/main/norse/task/mnist_pl.py) (requires PyTorch lightning):\n\n```bash\npython -m norse.task.mnist_pl --gpus=4\n```\n\n### 2.3. Example: Spiking convolutional classifier \n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/norse/notebooks/blob/main/mnist_classifiers.ipynb)\n\nThis classifier is taken from our [tutorial on training a spiking MNIST classifier](https://github.com/norse/notebooks#level-intermediate) and achieves \u003e99% accuracy.\n\n```python\nimport torch, torch.nn as nn\nfrom norse.torch import LICell             # Leaky integrator\nfrom norse.torch import LIFCell            # Leaky integrate-and-fire\nfrom norse.torch import SequentialState    # Stateful sequential layers\n\nmodel = SequentialState(\n    nn.Conv2d(1, 20, 5, 1),      # Convolve from 1 -\u003e 20 channels\n    LIFCell(),                   # Spiking activation layer\n    nn.MaxPool2d(2, 2),\n    nn.Conv2d(20, 50, 5, 1),     # Convolve from 20 -\u003e 50 channels\n    LIFCell(),\n    nn.MaxPool2d(2, 2),\n    nn.Flatten(),                # Flatten to 800 units\n    nn.Linear(800, 10),\n    LICell(),                    # Non-spiking integrator layer\n)\n\ndata = torch.randn(8, 1, 28, 28) # 8 batches, 1 channel, 28x28 pixels\noutput, state = model(data)      # Provides a tuple (tensor (8, 10), neuron state)\n```\n\n### 2.4. Example: Long short-term spiking neural networks\nThe long short-term spiking neural networks from the paper by [G. Bellec, D. Salaj, A. Subramoney, R. Legenstein, and W. Maass (2018)](https://arxiv.org/abs/1803.09574) is another interesting way to apply norse: \n```python\nimport torch\nfrom norse.torch import LSNNRecurrent\n# Recurrent LSNN network with 2 input neurons and 10 output neurons\nlayer = LSNNRecurrent(2, 10)\n# Generate data: 20 timesteps with 8 datapoints per batch for 2 neurons\ndata  = torch.zeros(20, 8, 2)\n# Tuple of (output spikes of shape (20, 8, 2), layer state)\noutput, new_state = layer(data)\n```\n\n## 3. Why Norse?\n\nNorse was created for two reasons: to 1) apply findings from decades of research in practical settings\nand to 2) accelerate our own research within bio-inspired learning.\n\nWe are passionate about Norse: we strive to follow best practices and promise to maintain this library for the\nsimple reason that we depend on it ourselves.\nWe have implemented a number of neuron models, synapse dynamics, encoding and decoding algorithms, \ndataset integrations, tasks, and examples.\nCombined with the PyTorch infrastructure and our high coding standards, we have found Norse to be an excellent tool for modelling *scaleable* experiments and [Norse is actively being used in research](https://norse.github.io/norse/papers.html).\n\nFinally, we are working to keep Norse as performant as possible. \nPreliminary benchmarks suggest that Norse [achieves excellent performance on small networks of up to ~5000 neurons per layer](https://github.com/norse/norse/tree/main/norse/benchmark). \nAided by the preexisting investment in scalable training and inference with PyTorch, Norse scales from a single laptop to several nodes on an HPC cluster with little effort.\nAs illustrated by our [PyTorch Lightning example task](https://norse.github.io/norse/tasks.html#mnist-in-pytorch-lightning).\n\n\n[Read more about Norse in our documentation](https://norse.github.io/norse/about.html).\n\n## 4. Similar work\n\nWe refer to the [Neuromorphic Software Guide](https://open-neuromorphic.org/neuromorphic-computing/software/) for a comprehensive list of software for neuromorphic computing.\n\n\n## 5. Contributing\n\nContributions are warmly encouraged and always welcome. However, we also have high expectations around the code base so if you wish to contribute, please refer to our [contribution guidelines](contributing.md).\n\n## 6. Credits\n\nNorse is created by\n* [Christian Pehle](https://www.kip.uni-heidelberg.de/people/10110) (@GitHub [cpehle](https://github.com/cpehle/)), PostDoc at University of Heidelberg, Germany.\n* [Jens E. Pedersen](https://www.kth.se/profile/jeped) (@GitHub [jegp](https://github.com/jegp/)), doctoral student at KTH Royal Institute of Technology, Sweden.\n\nMore information about Norse can be found [in our documentation](https://norse.github.io/norse/about.html). The research has received funding from the EC Horizon 2020 Framework Programme under Grant Agreements 785907 and 945539 (HBP) and by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany's Excellence Strategy EXC 2181/1 - 390900948 (the Heidelberg STRUCTURES Excellence Cluster).\n\n## 7. Citation\n\nIf you use Norse in your work, please cite it as follows:\n\n```BibTex\n@software{norse2021,\n  author       = {Pehle, Christian and\n                  Pedersen, Jens Egholm},\n  title        = {{Norse -  A deep learning library for spiking \n                   neural networks}},\n  month        = jan,\n  year         = 2021,\n  note         = {Documentation: https://norse.ai/docs/},\n  publisher    = {Zenodo},\n  version      = {0.0.7},\n  doi          = {10.5281/zenodo.4422025},\n  url          = {https://doi.org/10.5281/zenodo.4422025}\n}\n```\n\nNorse is actively applied and cited in the literature. We refer to [Google Scholar](https://scholar.google.com/citations?view_op=view_citation\u0026hl=de\u0026user=A4VwxccAAAAJ\u0026citation_for_view=A4VwxccAAAAJ:2osOgNQ5qMEC) or [Semantic Scholar](https://www.semanticscholar.org/paper/Norse-A-deep-learning-library-for-spiking-neural-Pehle-Pedersen/bdd21dfe8c4a503365a49bfdb099e63c74823c7c) for a list of citations.\n\n## 8. License\n\nLGPLv3. See [LICENSE](LICENSE) for license details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorse%2Fnorse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorse%2Fnorse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorse%2Fnorse/lists"}