rectipy


Namerectipy JSON
Version 0.12.1 PyPI version JSON
download
home_page
SummaryRecurrent neural network training in Python
upload_time2024-02-17 19:47:07
maintainer
docs_urlNone
authorRichard Gast
requires_python>=3.6
licenseGPL v3
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # RectiPy

[![License](https://img.shields.io/github/license/pyrates-neuroscience/RectiPy.svg)](https://github.com/pyrates-neuroscience/RectiPy)
[![Python](https://img.shields.io/pypi/pyversions/rectipy.svg?style=plastic)](https://badge.fury.io/py/rectipy)
[![PyPI version](https://badge.fury.io/py/rectipy.svg)](https://badge.fury.io/py/rectipy)
[![CircleCI](https://circleci.com/gh/pyrates-neuroscience/RectiPy.svg?style=svg)](https://circleci.com/gh/pyrates-neuroscience/RectiPy)
[![Documentation Status](https://readthedocs.org/projects/rectipy/badge/?version=latest)](https://rectipy.readthedocs.io/en/latest/?badge=latest)
[![DOI](https://zenodo.org/badge/523464500.svg)](https://zenodo.org/badge/latestdoi/523464500)

<img src="./RectiPy_logo_color.png" width="20%" heigth="20%" align="right">

**Rec**urrent neural network **t**raining **i**n **Py**thon (`RectiPy`) is a software package developed by Richard Gast 
that allows for lightweight implementations of recurrent neural networks (RNNs) based on ordinary or delayed 
differential equations.
`RectiPy` provides an intuitive `YAML` interface for model definition, and leverages [PyRates](https://github.com/pyrates-neuroscience/PyRates)
to translate these model definitions into `PyTorch` functions.
This way, users can easily define their own neuron models, spike-based or rate-based, and use them to create a RNN model.
All model training, testing, as well as numerical integration of the differential equations is also performed in `PyTorch`.
Thus, `RectiPy` comes with all the gradient-based optimization and parallelization features that `PyTorch` provides.

## Basic Features

### 1. Model definition
- RNN layers are defined via ordinary or delayed differential equations that govern the neuron dynamics
- neurons can either be rate neurons or spiking neurons
- RNN layers can either be defined via `YAML` templates (see documentation of [PyRates](https://github.com/pyrates-neuroscience/PyRates) for a detailed documentation of the `YAML`-based model definition) or via custom `PyTorch` modules.
- linear input and output layers can be added, thus connecting the RNN into a layered neural network

### 2. Model training and testing
- input and output weights, as well as any parameters of the RNN layers can be trained
- `autograd` functions by `PyTorch` are used for the parameter optimization
- most loss functions and optimization algorithms implemented in `PyTorch` are available

### 3. Model outputs
- record any RNN state variable, loss, or model outputs via the `Observer` class 
- choose at which rate to sample your recordings
- visualize for recordings via lightweight plotting functions
- connect the `RectiPy` network to larger deep learning architectures

## Installation

### Stable release (PyPi)

You can install the most recent stable version of `RectiPy` via the `pip` command. 
To this end, execute the following command via the terminal within the Python environment you would like to install `RectiPy` in:

```
pip install rectipy
```
This will also install the dependencies of the software listed below.

### Development version (github)

To install the most recent development version of `RectiPy` as available on the master branch, clone this repository and run the 
following line from the directory in which the repository was cloned:
```
python setup.py install
```
Again, this will also install the dependencies of the software listed below.

### Dependencies
- torch
- pyrates
- numpy
- matplotlib

## Documentation

You can find a detailed documentation and various use examples at our [readthedocs](https://rectipy.readthedocs.io/en/latest/) website.

## References

If you use this framework, please cite:

[Gast, R., Knösche, T. R. & Kennedy, A. (2023). PyRates - A Code-Generation Tool for Dynamical Systems Modeling. arXiv:2302.03763.](https://arxiv.org/abs/2302.03763)

## Contact

If you have any questions, want to contribute to the software, or just get in touch, feel free to post an issue or contact [Richard Gast](https://www.richardgast.me).



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "rectipy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Richard Gast",
    "author_email": "richard.gast@northwestern.edu",
    "download_url": "https://files.pythonhosted.org/packages/71/c3/1caf30725fa8d564ce43981197a3359d892513f9c1fecba318c28489053b/rectipy-0.12.1.tar.gz",
    "platform": null,
    "description": "# RectiPy\n\n[![License](https://img.shields.io/github/license/pyrates-neuroscience/RectiPy.svg)](https://github.com/pyrates-neuroscience/RectiPy)\n[![Python](https://img.shields.io/pypi/pyversions/rectipy.svg?style=plastic)](https://badge.fury.io/py/rectipy)\n[![PyPI version](https://badge.fury.io/py/rectipy.svg)](https://badge.fury.io/py/rectipy)\n[![CircleCI](https://circleci.com/gh/pyrates-neuroscience/RectiPy.svg?style=svg)](https://circleci.com/gh/pyrates-neuroscience/RectiPy)\n[![Documentation Status](https://readthedocs.org/projects/rectipy/badge/?version=latest)](https://rectipy.readthedocs.io/en/latest/?badge=latest)\n[![DOI](https://zenodo.org/badge/523464500.svg)](https://zenodo.org/badge/latestdoi/523464500)\n\n<img src=\"./RectiPy_logo_color.png\" width=\"20%\" heigth=\"20%\" align=\"right\">\n\n**Rec**urrent neural network **t**raining **i**n **Py**thon (`RectiPy`) is a software package developed by Richard Gast \nthat allows for lightweight implementations of recurrent neural networks (RNNs) based on ordinary or delayed \ndifferential equations.\n`RectiPy` provides an intuitive `YAML` interface for model definition, and leverages [PyRates](https://github.com/pyrates-neuroscience/PyRates)\nto translate these model definitions into `PyTorch` functions.\nThis way, users can easily define their own neuron models, spike-based or rate-based, and use them to create a RNN model.\nAll model training, testing, as well as numerical integration of the differential equations is also performed in `PyTorch`.\nThus, `RectiPy` comes with all the gradient-based optimization and parallelization features that `PyTorch` provides.\n\n## Basic Features\n\n### 1. Model definition\n- RNN layers are defined via ordinary or delayed differential equations that govern the neuron dynamics\n- neurons can either be rate neurons or spiking neurons\n- RNN layers can either be defined via `YAML` templates (see documentation of [PyRates](https://github.com/pyrates-neuroscience/PyRates) for a detailed documentation of the `YAML`-based model definition) or via custom `PyTorch` modules.\n- linear input and output layers can be added, thus connecting the RNN into a layered neural network\n\n### 2. Model training and testing\n- input and output weights, as well as any parameters of the RNN layers can be trained\n- `autograd` functions by `PyTorch` are used for the parameter optimization\n- most loss functions and optimization algorithms implemented in `PyTorch` are available\n\n### 3. Model outputs\n- record any RNN state variable, loss, or model outputs via the `Observer` class \n- choose at which rate to sample your recordings\n- visualize for recordings via lightweight plotting functions\n- connect the `RectiPy` network to larger deep learning architectures\n\n## Installation\n\n### Stable release (PyPi)\n\nYou can install the most recent stable version of `RectiPy` via the `pip` command. \nTo this end, execute the following command via the terminal within the Python environment you would like to install `RectiPy` in:\n\n```\npip install rectipy\n```\nThis will also install the dependencies of the software listed below.\n\n### Development version (github)\n\nTo install the most recent development version of `RectiPy` as available on the master branch, clone this repository and run the \nfollowing line from the directory in which the repository was cloned:\n```\npython setup.py install\n```\nAgain, this will also install the dependencies of the software listed below.\n\n### Dependencies\n- torch\n- pyrates\n- numpy\n- matplotlib\n\n## Documentation\n\nYou can find a detailed documentation and various use examples at our [readthedocs](https://rectipy.readthedocs.io/en/latest/) website.\n\n## References\n\nIf you use this framework, please cite:\n\n[Gast, R., Kn\u00f6sche, T. R. & Kennedy, A. (2023). PyRates - A Code-Generation Tool for Dynamical Systems Modeling. arXiv:2302.03763.](https://arxiv.org/abs/2302.03763)\n\n## Contact\n\nIf you have any questions, want to contribute to the software, or just get in touch, feel free to post an issue or contact [Richard Gast](https://www.richardgast.me).\n\n\n",
    "bugtrack_url": null,
    "license": "GPL v3",
    "summary": "Recurrent neural network training in Python",
    "version": "0.12.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "64cc6cafb510496550f9d7ba150598aa6d40e548f60b0e5ca75a3a7af453742f",
                "md5": "70ab197b267f1497d2528e1b4468f80d",
                "sha256": "e3cdceb3a1ae2a9c75a35d55d6e3dcd8e98bdbbb6d4fa3f88cf44d4c96fd5447"
            },
            "downloads": -1,
            "filename": "rectipy-0.12.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "70ab197b267f1497d2528e1b4468f80d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 49823,
            "upload_time": "2024-02-17T19:47:05",
            "upload_time_iso_8601": "2024-02-17T19:47:05.328916Z",
            "url": "https://files.pythonhosted.org/packages/64/cc/6cafb510496550f9d7ba150598aa6d40e548f60b0e5ca75a3a7af453742f/rectipy-0.12.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "71c31caf30725fa8d564ce43981197a3359d892513f9c1fecba318c28489053b",
                "md5": "e3430096b296420ac737b30766e35bbd",
                "sha256": "9e9a2ddc2ffd8d7d27ab75afb8a675e38b2f359cab30c37739799b896a3d2263"
            },
            "downloads": -1,
            "filename": "rectipy-0.12.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e3430096b296420ac737b30766e35bbd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 44474,
            "upload_time": "2024-02-17T19:47:07",
            "upload_time_iso_8601": "2024-02-17T19:47:07.244972Z",
            "url": "https://files.pythonhosted.org/packages/71/c3/1caf30725fa8d564ce43981197a3359d892513f9c1fecba318c28489053b/rectipy-0.12.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-17 19:47:07",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rectipy"
}
        
Elapsed time: 0.19103s