{"id":13689053,"url":"https://github.com/reservoirpy/reservoirpy","last_synced_at":"2026-03-27T04:07:23.138Z","repository":{"id":37352068,"uuid":"133782000","full_name":"reservoirpy/reservoirpy","owner":"reservoirpy","description":"A simple and flexible code for Reservoir Computing architectures like Echo State Networks","archived":false,"fork":false,"pushed_at":"2026-02-16T07:13:04.000Z","size":114508,"stargazers_count":615,"open_issues_count":14,"forks_count":141,"subscribers_count":21,"default_branch":"master","last_synced_at":"2026-03-25T05:03:01.668Z","etag":null,"topics":["artificial-intelligence","echo-state-networks","esn","machine-learning","machine-learning-algorithms","neural-network","python","recurrent-neural-networks","reservoir","reservoir-computing","timeseries","timeseries-analysis","timeseries-forecasting","timeseries-prediction"],"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/reservoirpy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.rst","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-05-17T08:20:01.000Z","updated_at":"2026-03-22T07:23:37.000Z","dependencies_parsed_at":"2023-01-30T12:16:08.102Z","dependency_job_id":"41abd94a-93c1-4f6f-9c50-c93986f92b1f","html_url":"https://github.com/reservoirpy/reservoirpy","commit_stats":{"total_commits":563,"total_committers":19,"mean_commits":29.63157894736842,"dds":0.3605683836589698,"last_synced_commit":"bcf620a8c593b6ad4c649f43b2d59bb844a98d05"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/reservoirpy/reservoirpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reservoirpy%2Freservoirpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reservoirpy%2Freservoirpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reservoirpy%2Freservoirpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reservoirpy%2Freservoirpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reservoirpy","download_url":"https://codeload.github.com/reservoirpy/reservoirpy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reservoirpy%2Freservoirpy/sbom","scorecard":{"id":771755,"data":{"date":"2025-08-11","repo":{"name":"github.com/reservoirpy/reservoirpy","commit":"971c9e96f20223caf1461ea0af968a8c2636a9d7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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":"Maintained","score":10,"reason":"24 commit(s) and 0 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/test.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":"Code-Review","score":0,"reason":"Found 0/4 approved changesets -- score normalized to 0","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":"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":"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":"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":"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: MIT License: 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":"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":"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 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"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-288 / GHSA-6hrg-qmvc-2xh8","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: GHSA-g7vv-2v7x-gj9p"],"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/test.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/reservoirpy/reservoirpy/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/reservoirpy/reservoirpy/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/reservoirpy/reservoirpy/test.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:54","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:55","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:56","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:57","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 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"}}]},"last_synced_at":"2025-08-23T02:24:56.900Z","repository_id":37352068,"created_at":"2025-08-23T02:24:56.900Z","updated_at":"2025-08-23T02:24:56.900Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31018554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["artificial-intelligence","echo-state-networks","esn","machine-learning","machine-learning-algorithms","neural-network","python","recurrent-neural-networks","reservoir","reservoir-computing","timeseries","timeseries-analysis","timeseries-forecasting","timeseries-prediction"],"created_at":"2024-08-02T15:01:32.239Z","updated_at":"2026-03-27T04:07:23.130Z","avatar_url":"https://github.com/reservoirpy.png","language":"Python","funding_links":[],"categories":["Python","其他_机器学习与深度学习"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"static/rpy_banner_light.png#gh-light-mode-only\"\u003e\n  \u003cimg src=\"static/rpy_banner_dark.png#gh-dark-mode-only\"\u003e\n\n  **Simple and flexible library for Reservoir Computing architectures like Echo State Networks (ESN).**\n\n  [![PyPI version](https://badge.fury.io/py/reservoirpy.svg)](https://badge.fury.io/py/reservoirpy)\n  [![HAL](https://img.shields.io/badge/HAL-02595026-white?style=flat\u0026logo=HAL\u0026logoColor=white\u0026labelColor=B03532\u0026color=grey)](https://inria.hal.science/hal-02595026)\n  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/reservoirpy)\n  \u003cbr/\u003e\n  [![Downloads](https://static.pepy.tech/badge/reservoirpy)](https://pepy.tech/project/reservoirpy)\n  [![Documentation Status](https://readthedocs.org/projects/reservoirpy/badge/?version=latest)](https://reservoirpy.readthedocs.io/en/latest/?badge=latest)\n  [![Testing](https://github.com/reservoirpy/reservoirpy/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/reservoirpy/reservoirpy/actions/workflows/test.yml)\n  [![codecov](https://codecov.io/gh/reservoirpy/reservoirpy/branch/master/graph/badge.svg?token=JC8R1PB5EO)](https://codecov.io/gh/reservoirpy/reservoirpy)\n\u003c/div\u003e\n\n\n\n---\n\n\u003cp\u003e \u003cimg src=\"static/googlecolab.svg\" alt=\"Google Colab icon\" width=32 height=32 align=\"left\"\u003e\u003cb\u003eTutorials:\u003c/b\u003e \u003ca href=\"https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/1-Getting_Started.ipynb\"\u003eOpen in Colab\u003c/a\u003e \u003c/p\u003e\n\u003c!--\u003cp\u003e\u003cimg src=\"static/changelog.svg\" alt=\"2\" width =32 height=32 align=\"left\"\u003e\u003cb\u003eChangelog:\u003c/b\u003e https://github.com/reservoirpy/reservoirpy/releases\u003c/p\u003e--\u003e\n\u003cp\u003e \u003cimg src=\"static/documentation.svg\" alt=\"Open book icon\" width=32 height=32 align=\"left\"\u003e\u003cb\u003eDocumentation:\u003c/b\u003e \u003ca href=\"https://reservoirpy.readthedocs.io/\"\u003ehttps://reservoirpy.readthedocs.io/\u003c/a\u003e\u003c/p\u003e\n\u003c!--\u003cp\u003e \u003cimg src=\"static/user_guide.svg\" width=32 height=32 align=\"left\"\u003e\u003cb\u003eUser Guide:\u003c/b\u003e https://reservoirpy.readthedocs.io/en/latest/user_guide/\u003c/a\u003e\u003c/p\u003e--\u003e\n\n---\n\n**Feature overview:**\n- easy creation of [complex architectures](https://reservoirpy.readthedocs.io/en/latest/user_guide/model.html) with multiple reservoirs (e.g. *deep reservoirs*),\nreadouts\n- [feedback loops](https://reservoirpy.readthedocs.io/en/latest/user_guide/advanced_demo.html#Feedback-connections)\n- [offline and online training](https://reservoirpy.readthedocs.io/en/latest/user_guide/learning_rules.html)\n- [parallel implementation](https://reservoirpy.readthedocs.io/en/latest/api/generated/reservoirpy.nodes.ESN.html)\n- sparse matrix computation\n- advanced learning rules (e.g. [*Intrinsic Plasticity*](https://reservoirpy.readthedocs.io/en/latest/api/generated/reservoirpy.nodes.IPReservoir.html), [*Local Plasticity*](https://reservoirpy.readthedocs.io/en/latest/api/generated/reservoirpy.nodes.LocalPlasticityReservoir.html) or [*NVAR* (Next-Generation RC)](https://reservoirpy.readthedocs.io/en/latest/api/generated/reservoirpy.nodes.NVAR.html))\n- interfacing with [scikit-learn](https://reservoirpy.readthedocs.io/en/latest/api/generated/reservoirpy.nodes.ScikitLearnNode.html) models\n- and many more!\n\nMoreover, graphical tools are included to **easily explore hyperparameters**\nwith the help of the *hyperopt* library.\n\n## Quick try ⚡\n\n### Installation\n\n```bash\npip install reservoirpy\n```\n\nFor more complete installation (including hyperparameter search, ...), look at the [complete installation guide on ReadTheDocs](https://reservoirpy.readthedocs.io/en/latest/developer_guide/advanced_install.html).\n\n### An example on chaotic timeseries prediction (Mackey-Glass)\n\nFor a general introduction to reservoir computing and ReservoirPy features, take\na look at the [tutorials](#tutorials)\n\n```python\nfrom reservoirpy.datasets import mackey_glass, to_forecasting\nfrom reservoirpy.nodes import Reservoir, Ridge\nfrom reservoirpy.observables import rmse, rsquare\n\n### Step 1: Load the dataset\n\nX = mackey_glass(n_timesteps=2000)  # (2000, 1)-shaped array\n# create y by shifting X, and train/test split\nx_train, x_test, y_train, y_test = to_forecasting(X, test_size=0.2)\n\n### Step 2: Create an Echo State Network\n\n# 100 neurons reservoir, spectral radius = 1.25, leak rate = 0.3\nreservoir = Reservoir(units=100, sr=1.25, lr=0.3)\n# feed-forward layer of neurons, trained with L2-regularization\nreadout = Ridge(ridge=1e-5)\n# connect the two nodes\nesn = reservoir \u003e\u003e readout\n\n### Step 3: Fit, run and evaluate the ESN\n\nesn.fit(x_train, y_train, warmup=100)\npredictions = esn.run(x_test)\n\nprint(f\"RMSE: {rmse(y_test, predictions)}; R^2 score: {rsquare(y_test, predictions)}\")\n# RMSE: 0.0020282; R^2 score: 0.99992\n```\n\n\n## More examples and tutorials 🎓\n\n### Tutorials\n\n- [**1 - Getting started with ReservoirPy**](./tutorials/1-Getting_Started.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_Getting_started-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/1-Getting_Started.ipynb)\n- [**2 - Advanced features**](./tutorials/2-Advanced_Features.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_Advanced_features-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/2-Advanced_Features.ipynb)\n- [**3 - General introduction to Reservoir Computing**](./tutorials/3-General_Introduction_to_Reservoir_Computing.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_Introduction_to_RC-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/3-General_Introduction_to_Reservoir_Computing.ipynb)\n- [**4 - Understand and optimise hyperparameters**](./tutorials/4-Understand_and_optimize_hyperparameters.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_Hyperparameters-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/4-Understand_and_optimize_hyperparameters.ipynb)\n- [**5 - Classification with reservoir computing**](./tutorials/5-Classification-with-RC.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_Classification-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/5-Classification-with-RC.ipynb)\n- [**6 - Interfacing ReservoirPy with scikit-learn**](./tutorials/6-Interfacing_with_scikit-learn.ipynb)\n[![Tutorial on Google Colab](https://img.shields.io/badge/Tutorial:_scikit--learn_interface-525252?style=flat\u0026logo=googlecolab\u0026logoColor=%23F9AB00)](https://colab.research.google.com/github/reservoirpy/reservoirpy/blob/master/tutorials/6-Interfacing_with_scikit-learn.ipynb)\n\n### Examples\n\nFor advanced users, we also showcase partial reproduction of papers on reservoir computing to demonstrate some features of the library.\n\n- [**Improving reservoir using Intrinsic Plasticity** (Schrauwen et al., 2008)](/examples/Improving%20reservoirs%20using%20Intrinsic%20Plasticity/Intrinsic_Plasiticity_Schrauwen_et_al_2008.ipynb)\n- [**Interactive reservoir computing for chunking information streams** (Asabuki et al., 2018)](/examples/Interactive%20reservoir%20computing%20for%20chunking%20information%20streams/Chunking_Asabuki_et_al_2018.ipynb)\n- [**Next-Generation reservoir computing** (Gauthier et al., 2021)](/examples/Next%20Generation%20Reservoir%20Computing/NG-RC_Gauthier_et_al_2021.ipynb)\n- [**Edge of stability Echo State Network** (Ceni et al., 2023)](/examples/Edge%20of%20Stability%20Echo%20State%20Network/Edge_of_stability_Ceni_Gallicchio_2023.ipynb)\n\n\n## Papers and projects using ReservoirPy\n\n*If you want your paper to appear here, please contact us (see contact link below).*\n\n- ( [HAL](https://inria.hal.science/hal-04354303) | [PDF](https://arxiv.org/pdf/2312.06695) | [Code](https://github.com/corentinlger/ER-MRL) ) Leger et al. (2024) *Evolving Reservoirs for Meta Reinforcement Learning.* EvoAPPS 2024\n- ( [arXiv](https://arxiv.org/abs/2204.02484) | [PDF](https://arxiv.org/pdf/2204.02484) ) Chaix-Eichel et al. (2022) *From implicit learning to explicit representations.* arXiv preprint arXiv:2204.02484.\n- ( [HTML](https://link.springer.com/chapter/10.1007/978-3-030-86383-8_6) | [HAL](https://hal.inria.fr/hal-03203374) | [PDF](https://hal.inria.fr/hal-03203374/document) ) Trouvain \u0026 Hinaut (2021) *Canary Song Decoder: Transduction and Implicit Segmentation with ESNs and LTSMs.* ICANN 2021\n- ( [HTML](https://ieeexplore.ieee.org/abstract/document/9515607) ) Pagliarini et al. (2021) *Canary Vocal Sensorimotor Model with RNN Decoder and Low-dimensional GAN Generator.* ICDL 2021.\n- ( [HAL](https://hal.inria.fr/hal-03244723/) | [PDF](https://hal.inria.fr/hal-03244723/document) ) Pagliarini et al. (2021) *What does the Canary Say? Low-Dimensional GAN Applied to Birdsong.* HAL preprint.\n- ( [HTML](https://link.springer.com/chapter/10.1007/978-3-030-86383-8_7) | [HAL](https://hal.inria.fr/hal-03203318) | [PDF](https://hal.inria.fr/hal-03203318) ) Hinaut \u0026 Trouvain (2021) *Which Hype for My New Task? Hints and Random Search for Echo State Networks Hyperparameters.* ICANN 2021\n\n## Awesome Reservoir Computing\n\nWe also provide a curated list of tutorials, papers, projects and tools for Reservoir Computing (not necessarily related to ReservoirPy) here!:\n\n**https://github.com/reservoirpy/awesome-reservoir-computing**\n\n## Contact\nIf you have a question regarding the library, please open an issue.\n\nIf you have more general question or feedback you can contact us by email to **xavier dot hinaut the-famous-home-symbol inria dot fr**.\n\n## Citing ReservoirPy\n\nTrouvain, N., Pedrelli, L., Dinh, T. T., Hinaut, X. (2020) *ReservoirPy: an efficient and user-friendly library to design echo state networks. In International Conference on Artificial Neural Networks* (pp. 494-505). Springer, Cham. ( [HTML](https://link.springer.com/chapter/10.1007/978-3-030-61616-8_40) | [HAL](https://hal.inria.fr/hal-02595026) | [PDF](https://hal.inria.fr/hal-02595026/document) )\n\nIf you're using ReservoirPy in your work, please cite our package using the following bibtex entry:\n\n```\n@incollection{Trouvain2020,\n  doi = {10.1007/978-3-030-61616-8_40},\n  url = {https://doi.org/10.1007/978-3-030-61616-8_40},\n  year = {2020},\n  publisher = {Springer International Publishing},\n  pages = {494--505},\n  author = {Nathan Trouvain and Luca Pedrelli and Thanh Trung Dinh and Xavier Hinaut},\n  title = {{ReservoirPy}: An Efficient and User-Friendly Library to Design Echo State Networks},\n  booktitle = {Artificial Neural Networks and Machine Learning {\\textendash} {ICANN} 2020}\n}\n```\n\n\n## Acknowledgement\n\n\u003cdiv align=\"left\"\u003e\n  \u003cimg src=\"./static/inria_red.svg\" width=300\u003e\u003cbr\u003e\n\u003c/div\u003e\n\n\nThis package is developed and supported by Inria at Bordeaux, France in [Mnemosyne](https://team.inria.fr/mnemosyne/) group. [Inria](https://www.inria.fr/en) is a French Research Institute in Digital Sciences (Computer Science, Mathematics, Robotics, ...).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freservoirpy%2Freservoirpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freservoirpy%2Freservoirpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freservoirpy%2Freservoirpy/lists"}