Name | rectipy JSON |
Version |
0.12.2
JSON |
| download |
home_page | None |
Summary | Recurrent neural network training in Python |
upload_time | 2025-07-27 17:46:23 |
maintainer | None |
docs_url | None |
author | Richard Gast |
requires_python | >=3.8 |
license | GPL v3 |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# RectiPy
[](https://github.com/pyrates-neuroscience/RectiPy)
[](https://badge.fury.io/py/rectipy)
[](https://badge.fury.io/py/rectipy)
[](https://circleci.com/gh/pyrates-neuroscience/RectiPy)
[](https://rectipy.readthedocs.io/en/latest/?badge=latest)
[](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": null,
"name": "rectipy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Richard Gast",
"author_email": "richard.gast@northwestern.edu",
"download_url": "https://files.pythonhosted.org/packages/bc/c2/19a6597ee0758e8b0fcc87c975438868640994068885be9f8ee6a2d28148/rectipy-0.12.2.tar.gz",
"platform": null,
"description": "# RectiPy\n\n[](https://github.com/pyrates-neuroscience/RectiPy)\n[](https://badge.fury.io/py/rectipy)\n[](https://badge.fury.io/py/rectipy)\n[](https://circleci.com/gh/pyrates-neuroscience/RectiPy)\n[](https://rectipy.readthedocs.io/en/latest/?badge=latest)\n[](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.2",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "606d95d66a0ed12643563ee74e6a08446409e5e9b5dfc9f804e5a9faa626719c",
"md5": "70dbb01cc339460deb8a0f506c23be3c",
"sha256": "923020e196400285bdb1c4fe4444c9acc4e0c592957c12e32cd7e2800470cee3"
},
"downloads": -1,
"filename": "rectipy-0.12.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "70dbb01cc339460deb8a0f506c23be3c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 49918,
"upload_time": "2025-07-27T17:46:22",
"upload_time_iso_8601": "2025-07-27T17:46:22.313578Z",
"url": "https://files.pythonhosted.org/packages/60/6d/95d66a0ed12643563ee74e6a08446409e5e9b5dfc9f804e5a9faa626719c/rectipy-0.12.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bcc219a6597ee0758e8b0fcc87c975438868640994068885be9f8ee6a2d28148",
"md5": "851b8c3608ce8b41883fe641f15618fd",
"sha256": "44429ca0fa1fdffb886f7a1399c9590cf2f8d3a2fe590a9dec686898f16331b0"
},
"downloads": -1,
"filename": "rectipy-0.12.2.tar.gz",
"has_sig": false,
"md5_digest": "851b8c3608ce8b41883fe641f15618fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 44614,
"upload_time": "2025-07-27T17:46:23",
"upload_time_iso_8601": "2025-07-27T17:46:23.643589Z",
"url": "https://files.pythonhosted.org/packages/bc/c2/19a6597ee0758e8b0fcc87c975438868640994068885be9f8ee6a2d28148/rectipy-0.12.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-27 17:46:23",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "rectipy"
}