synapticflow


Namesynapticflow JSON
Version 0.0.7 PyPI version JSON
download
home_page
SummaryA powerful Python package for simulating spiking neural networks (SNNs) using PyTorch with GPU acceleration.
upload_time2023-06-07 15:19:59
maintainerArsham Gholamzadeh Khoee
docs_urlNone
authorArsham Gholamzadeh Khoee
requires_python
license
keywords delay learning rstdp stdp spiking neural network (snn)
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SynapticFlow

<img align='center' src="https://raw.githubusercontent.com/arsham-khoee/synapticflow/Document/docs/_static/logo-light-mode.png" alt="Light Logo" style="width: 600px; padding: 25px;"/>

Spiking Neural Networks (SNNs) are a type of artificial neural network that attempts to mimic the behavior of neurons in the brain. Unlike traditional neural networks that use continuous-valued signals, SNNs operate using discrete spikes of activity that are similar to the action potentials in biological neurons. SynapticFlow is a powerful Python package for prototyping and simulating SNNs. It is based on PyTorch and supports both CPU and GPU computation. SynapticFlow extends the capabilities of PyTorch and enables us to take advantage of using spiking neurons. Additionally, it offers different variations of synaptic plasticity as well as delay learning for SNNs.

Please consider supporting the SynapticFlow project by giving it a star ⭐️ on <a href="https://github.com/arsham-khoee/synapticflow">Github</a>, as it is a simple and effective way to show your appreciation and help the project gain more visibility.

If you encounter any problems, want to share your thoughts or have any questions related to training spiking neural networks, we welcome you to open an issue, start a discussion, or join our <a href="https://discord.gg/dhQyAMxM">Discord</a> channel where we can chat and offer advice.


## Installation

To install synapticflow, run the following command in your terminal:

```python
$ pip install synapticflow
```

We recommend using this method to install synapticflow since it will ensure that you have the latest stable version installed.

If you prefer to install synapticflow from source instead, follow these instructions:

```python
$ git clone https://github.com/arsham-khoee/synapticflow
$ cd synapticflow
$ python setup.py install
```


<h3> Requirements </h3>
The requirements for SynapticFlow are as follows: 

<ul>
  <li>torch</li>
  <li>matplotlib</li>
</ul>

## Usage
After package installation has been finished, you can use it by following command:

```python
import synapticflow as sf
```

In following code, a simple LIF neuron has been instantiated:

```python
model = sf.LIFPopulation(n=1)
print(model.v) # Membrane Potential
print(model.s) # Spike Trace
```

## SynapticFlow Structure
The following are the components included in SynapticFlow:
<br>

<div align="center">

|        Component        |                        Description                        |
|:-----------------------:|:---------------------------------------------------------:|
|   synapticflow.network  | A spiking network components like neurons and connections |
|  synapticflow.encoding  |              Several encoders implementation              |
|  synapticflow.learning  |           Learning rules and surrogate gradients          |
| synapticflow.evaluation |         Several evaluation functions for networks         |
|  synapticflow.datasets  | Include MNIST, Fashion-MNIST, CIFAR-10 benchmark datasets |
|   synapticflow.vision   |         Include vision components for neuroscience         |
|    synapticflow.plot    |        Plot tools for neural networks visualization       |

</div>

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "synapticflow",
    "maintainer": "Arsham Gholamzadeh Khoee",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "arsham.gh97@gmail.com",
    "keywords": "Delay Learning,RSTDP,STDP,Spiking Neural Network (SNN)",
    "author": "Arsham Gholamzadeh Khoee",
    "author_email": "arsham.gh97@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/c7/fd/ae101802cee8f4f7ae5161f2c661b4ac77c076e8faa51b2e6903c5aa1ba9/synapticflow-0.0.7.tar.gz",
    "platform": null,
    "description": "# SynapticFlow\n\n<img align='center' src=\"https://raw.githubusercontent.com/arsham-khoee/synapticflow/Document/docs/_static/logo-light-mode.png\" alt=\"Light Logo\" style=\"width: 600px; padding: 25px;\"/>\n\nSpiking Neural Networks (SNNs) are a type of artificial neural network that attempts to mimic the behavior of neurons in the brain. Unlike traditional neural networks that use continuous-valued signals, SNNs operate using discrete spikes of activity that are similar to the action potentials in biological neurons. SynapticFlow is a powerful Python package for prototyping and simulating SNNs. It is based on PyTorch and supports both CPU and GPU computation. SynapticFlow extends the capabilities of PyTorch and enables us to take advantage of using spiking neurons. Additionally, it offers different variations of synaptic plasticity as well as delay learning for SNNs.\n\nPlease consider supporting the SynapticFlow project by giving it a star \u2b50\ufe0f on <a href=\"https://github.com/arsham-khoee/synapticflow\">Github</a>, as it is a simple and effective way to show your appreciation and help the project gain more visibility.\n\nIf you encounter any problems, want to share your thoughts or have any questions related to training spiking neural networks, we welcome you to open an issue, start a discussion, or join our <a href=\"https://discord.gg/dhQyAMxM\">Discord</a> channel where we can chat and offer advice.\n\n\n## Installation\n\nTo install synapticflow, run the following command in your terminal:\n\n```python\n$ pip install synapticflow\n```\n\nWe recommend using this method to install synapticflow since it will ensure that you have the latest stable version installed.\n\nIf you prefer to install synapticflow from source instead, follow these instructions:\n\n```python\n$ git clone https://github.com/arsham-khoee/synapticflow\n$ cd synapticflow\n$ python setup.py install\n```\n\n\n<h3> Requirements </h3>\nThe requirements for SynapticFlow are as follows: \n\n<ul>\n  <li>torch</li>\n  <li>matplotlib</li>\n</ul>\n\n## Usage\nAfter package installation has been finished, you can use it by following command:\n\n```python\nimport synapticflow as sf\n```\n\nIn following code, a simple LIF neuron has been instantiated:\n\n```python\nmodel = sf.LIFPopulation(n=1)\nprint(model.v) # Membrane Potential\nprint(model.s) # Spike Trace\n```\n\n## SynapticFlow Structure\nThe following are the components included in SynapticFlow:\n<br>\n\n<div align=\"center\">\n\n|        Component        |                        Description                        |\n|:-----------------------:|:---------------------------------------------------------:|\n|   synapticflow.network  | A spiking network components like neurons and connections |\n|  synapticflow.encoding  |              Several encoders implementation              |\n|  synapticflow.learning  |           Learning rules and surrogate gradients          |\n| synapticflow.evaluation |         Several evaluation functions for networks         |\n|  synapticflow.datasets  | Include MNIST, Fashion-MNIST, CIFAR-10 benchmark datasets |\n|   synapticflow.vision   |         Include vision components for neuroscience         |\n|    synapticflow.plot    |        Plot tools for neural networks visualization       |\n\n</div>\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A powerful Python package for simulating spiking neural networks (SNNs) using PyTorch with GPU acceleration.",
    "version": "0.0.7",
    "project_urls": null,
    "split_keywords": [
        "delay learning",
        "rstdp",
        "stdp",
        "spiking neural network (snn)"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96aada4bbd5ff3f7b383d4678c5c67124ce77e9ba88f02b37ac4869c8a3db2e9",
                "md5": "2780458b3f4f184d6f726a6e48bded9d",
                "sha256": "9f5a640e9c14b3cff8bdf91eb760483c67b778806d4d3e10505ddf5bebcc1bdd"
            },
            "downloads": -1,
            "filename": "synapticflow-0.0.7-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2780458b3f4f184d6f726a6e48bded9d",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 43094,
            "upload_time": "2023-06-07T15:19:56",
            "upload_time_iso_8601": "2023-06-07T15:19:56.756069Z",
            "url": "https://files.pythonhosted.org/packages/96/aa/da4bbd5ff3f7b383d4678c5c67124ce77e9ba88f02b37ac4869c8a3db2e9/synapticflow-0.0.7-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7fdae101802cee8f4f7ae5161f2c661b4ac77c076e8faa51b2e6903c5aa1ba9",
                "md5": "b9427eb032cf38facd666c75a67830d8",
                "sha256": "34d5a2f704a5aefbfdd1293758fadb0b6673a97e1c5e730e7c7294a49e26209f"
            },
            "downloads": -1,
            "filename": "synapticflow-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "b9427eb032cf38facd666c75a67830d8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 38533,
            "upload_time": "2023-06-07T15:19:59",
            "upload_time_iso_8601": "2023-06-07T15:19:59.945913Z",
            "url": "https://files.pythonhosted.org/packages/c7/fd/ae101802cee8f4f7ae5161f2c661b4ac77c076e8faa51b2e6903c5aa1ba9/synapticflow-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-07 15:19:59",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "synapticflow"
}
        
Elapsed time: 0.08042s