[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-reservoirpy--reservoirpy":3,"tool-reservoirpy--reservoirpy":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":67,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":91,"env_ram":91,"env_deps":92,"category_tags":99,"github_topics":100,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":115,"updated_at":116,"faqs":117,"releases":145},802,"reservoirpy\u002Freservoirpy","reservoirpy","A simple and flexible code for Reservoir Computing architectures like Echo State Networks","reservoirpy 是一款简洁灵活的 Python 开源库，专为构建储层计算架构设计，典型应用包括回声状态网络（ESN）。它致力于降低储层计算的入门门槛，解决传统时序预测模型搭建繁琐、难以快速验证想法的问题。\n\nreservoirpy 特别适合机器学习研究人员、算法工程师及需要处理时间序列数据的开发者。其核心优势在于高度的灵活性，支持轻松创建包含多个储层的深层架构，并提供反馈回路、稀疏矩阵计算及并行实现等功能。除了基础的离线训练，它还支持在线学习和多种高级学习规则，如内在可塑性（Intrinsic Plasticity）。此外，库内集成了与 scikit-learn 的接口以及超参数自动搜索工具，大大简化了模型调优流程。无论是进行混沌时间序列预测还是探索新型计算范式，reservoirpy 都能提供高效可靠的底层支持，配合详细的文档和教程，让研究者能更专注于算法本身而非工程细节。","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_34a1673f77e3.png\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_0f9b0e6478f9.png\">\n\n  **Simple and flexible library for Reservoir Computing architectures like Echo State Networks (ESN).**\n\n  [![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Freservoirpy.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Freservoirpy)\n  [![HAL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHAL-02595026-white?style=flat&logo=HAL&logoColor=white&labelColor=B03532&color=grey)](https:\u002F\u002Finria.hal.science\u002Fhal-02595026)\n  ![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Freservoirpy)\n  \u003Cbr\u002F>\n  [![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_a0583e3d8ede.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Freservoirpy)\n  [![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_13d664e1afd7.png)](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n  [![Testing](https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Factions\u002Fworkflows\u002Ftest.yml)\n  [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Freservoirpy\u002Freservoirpy\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=JC8R1PB5EO)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Freservoirpy\u002Freservoirpy)\n\u003C\u002Fdiv>\n\n\n\n---\n\n\u003Cp> \u003Cimg src=\"static\u002Fgooglecolab.svg\" alt=\"Google Colab icon\" width=32 height=32 align=\"left\">\u003Cb>Tutorials:\u003C\u002Fb> \u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F1-Getting_Started.ipynb\">Open in Colab\u003C\u002Fa> \u003C\u002Fp>\n\u003C!--\u003Cp>\u003Cimg src=\"static\u002Fchangelog.svg\" alt=\"2\" width =32 height=32 align=\"left\">\u003Cb>Changelog:\u003C\u002Fb> https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Freleases\u003C\u002Fp>-->\n\u003Cp> \u003Cimg src=\"static\u002Fdocumentation.svg\" alt=\"Open book icon\" width=32 height=32 align=\"left\">\u003Cb>Documentation:\u003C\u002Fb> \u003Ca href=\"https:\u002F\u002Freservoirpy.readthedocs.io\u002F\">https:\u002F\u002Freservoirpy.readthedocs.io\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003C!--\u003Cp> \u003Cimg src=\"static\u002Fuser_guide.svg\" width=32 height=32 align=\"left\">\u003Cb>User Guide:\u003C\u002Fb> https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002F\u003C\u002Fa>\u003C\u002Fp>-->\n\n---\n\n**Feature overview:**\n- easy creation of [complex architectures](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fmodel.html) with multiple reservoirs (e.g. *deep reservoirs*),\nreadouts\n- [feedback loops](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fadvanced_demo.html#Feedback-connections)\n- [offline and online training](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearning_rules.html)\n- [parallel implementation](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.ESN.html)\n- sparse matrix computation\n- advanced learning rules (e.g. [*Intrinsic Plasticity*](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.IPReservoir.html), [*Local Plasticity*](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.LocalPlasticityReservoir.html) or [*NVAR* (Next-Generation RC)](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.NVAR.html))\n- interfacing with [scikit-learn](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.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:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fdeveloper_guide\u002Fadvanced_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\u002Ftest 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 >> 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**](.\u002Ftutorials\u002F1-Getting_Started.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Getting_started-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F1-Getting_Started.ipynb)\n- [**2 - Advanced features**](.\u002Ftutorials\u002F2-Advanced_Features.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Advanced_features-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F2-Advanced_Features.ipynb)\n- [**3 - General introduction to Reservoir Computing**](.\u002Ftutorials\u002F3-General_Introduction_to_Reservoir_Computing.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Introduction_to_RC-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F3-General_Introduction_to_Reservoir_Computing.ipynb)\n- [**4 - Understand and optimise hyperparameters**](.\u002Ftutorials\u002F4-Understand_and_optimize_hyperparameters.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Hyperparameters-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F4-Understand_and_optimize_hyperparameters.ipynb)\n- [**5 - Classification with reservoir computing**](.\u002Ftutorials\u002F5-Classification-with-RC.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Classification-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F5-Classification-with-RC.ipynb)\n- [**6 - Interfacing ReservoirPy with scikit-learn**](.\u002Ftutorials\u002F6-Interfacing_with_scikit-learn.ipynb)\n[![Tutorial on Google Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_scikit--learn_interface-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F6-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)](\u002Fexamples\u002FImproving%20reservoirs%20using%20Intrinsic%20Plasticity\u002FIntrinsic_Plasiticity_Schrauwen_et_al_2008.ipynb)\n- [**Interactive reservoir computing for chunking information streams** (Asabuki et al., 2018)](\u002Fexamples\u002FInteractive%20reservoir%20computing%20for%20chunking%20information%20streams\u002FChunking_Asabuki_et_al_2018.ipynb)\n- [**Next-Generation reservoir computing** (Gauthier et al., 2021)](\u002Fexamples\u002FNext%20Generation%20Reservoir%20Computing\u002FNG-RC_Gauthier_et_al_2021.ipynb)\n- [**Edge of stability Echo State Network** (Ceni et al., 2023)](\u002Fexamples\u002FEdge%20of%20Stability%20Echo%20State%20Network\u002FEdge_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:\u002F\u002Finria.hal.science\u002Fhal-04354303) | [PDF](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2312.06695) | [Code](https:\u002F\u002Fgithub.com\u002Fcorentinlger\u002FER-MRL) ) Leger et al. (2024) *Evolving Reservoirs for Meta Reinforcement Learning.* EvoAPPS 2024\n- ( [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2204.02484) | [PDF](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2204.02484) ) Chaix-Eichel et al. (2022) *From implicit learning to explicit representations.* arXiv preprint arXiv:2204.02484.\n- ( [HTML](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-86383-8_6) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203374) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203374\u002Fdocument) ) Trouvain & Hinaut (2021) *Canary Song Decoder: Transduction and Implicit Segmentation with ESNs and LTSMs.* ICANN 2021\n- ( [HTML](https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F9515607) ) Pagliarini et al. (2021) *Canary Vocal Sensorimotor Model with RNN Decoder and Low-dimensional GAN Generator.* ICDL 2021.\n- ( [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03244723\u002F) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03244723\u002Fdocument) ) Pagliarini et al. (2021) *What does the Canary Say? Low-Dimensional GAN Applied to Birdsong.* HAL preprint.\n- ( [HTML](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-86383-8_7) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203318) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203318) ) Hinaut & 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:\u002F\u002Fgithub.com\u002Freservoirpy\u002Fawesome-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:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-61616-8_40) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-02595026) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-02595026\u002Fdocument) )\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\u002F978-3-030-61616-8_40},\n  url = {https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-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\">\n  \u003Cimg src=\".\u002Fstatic\u002Finria_red.svg\" width=300>\u003Cbr>\n\u003C\u002Fdiv>\n\n\nThis package is developed and supported by Inria at Bordeaux, France in [Mnemosyne](https:\u002F\u002Fteam.inria.fr\u002Fmnemosyne\u002F) group. [Inria](https:\u002F\u002Fwww.inria.fr\u002Fen) is a French Research Institute in Digital Sciences (Computer Science, Mathematics, Robotics, ...).\n","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_34a1673f77e3.png\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_0f9b0e6478f9.png\">\n\n  **用于构建储层计算（Reservoir Computing）架构的简单灵活库，例如回声状态网络（Echo State Networks, ESN）。**\n\n  [![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Freservoirpy.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Freservoirpy)\n  [![HAL](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHAL-02595026-white?style=flat&logo=HAL&logoColor=white&labelColor=B03532&color=grey)](https:\u002F\u002Finria.hal.science\u002Fhal-02595026)\n  ![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Freservoirpy)\n  \u003Cbr\u002F>\n  [![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_a0583e3d8ede.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Freservoirpy)\n  [![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_readme_13d664e1afd7.png)](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n  [![Testing](https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=master)](https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Factions\u002Fworkflows\u002Ftest.yml)\n  [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Freservoirpy\u002Freservoirpy\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg?token=JC8R1PB5EO)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Freservoirpy\u002Freservoirpy)\n\u003C\u002Fdiv>\n\n\n\n---\n\n\u003Cp> \u003Cimg src=\"static\u002Fgooglecolab.svg\" alt=\"Google Colab icon\" width=32 height=32 align=\"left\">\u003Cb>教程：\u003C\u002Fb> \u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F1-Getting_Started.ipynb\">在 Colab 中打开\u003C\u002Fa> \u003C\u002Fp>\n\u003C!--\u003Cp>\u003Cimg src=\"static\u002Fchangelog.svg\" alt=\"2\" width =32 height=32 align=\"left\">\u003Cb>更新日志：\u003C\u002Fb> https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Freleases\u003C\u002Fp>-->\n\u003Cp> \u003Cimg src=\"static\u002Fdocumentation.svg\" alt=\"Open book icon\" width=32 height=32 align=\"left\">\u003Cb>文档：\u003C\u002Fb> \u003Ca href=\"https:\u002F\u002Freservoirpy.readthedocs.io\u002F\">https:\u002F\u002Freservoirpy.readthedocs.io\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003C!--\u003Cp> \u003Cimg src=\"static\u002Fuser_guide.svg\" width=32 height=32 align=\"left\">\u003Cb>用户指南：\u003C\u002Fb> https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002F\u003C\u002Fa>\u003C\u002Fp>-->\n\n---\n\n**功能概览：**\n- 轻松创建包含多个储层（例如*深度储层*）的[复杂架构](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fmodel.html)，\n读出层\n- [反馈回路](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fadvanced_demo.html#Feedback-connections)\n- [离线和在线训练](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Flearning_rules.html)\n- [并行实现](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.ESN.html)\n- 稀疏矩阵计算\n- 高级学习规则（例如[*内在可塑性*](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.IPReservoir.html)、[*局部可塑性*](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.LocalPlasticityReservoir.html)或[*NVAR（下一代储层计算）*](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.NVAR.html)）\n- 与 [scikit-learn](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.nodes.ScikitLearnNode.html) 模型接口对接\n- 以及更多功能！\n\n此外，还包含了图形化工具，借助 *hyperopt* 库可以**轻松探索超参数**。\n\n## 快速尝试 ⚡\n\n### 安装\n\n```bash\npip install reservoirpy\n```\n\n对于更完整的安装（包括超参数搜索等），请查看 ReadTheDocs 上的 [完整安装指南](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fdeveloper_guide\u002Fadvanced_install.html)。\n\n### 混沌时间序列预测示例（Mackey-Glass）\n\n关于储层计算和 ReservoirPy 功能的通用介绍，请查看 [教程](#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\u002Ftest 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 >> 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## 更多示例和教程 🎓\n\n### 教程\n\n- [**1 - 开始使用 ReservoirPy**](.\u002Ftutorials\u002F1-Getting_Started.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Getting_started-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F1-Getting_Started.ipynb)\n- [**2 - 高级功能**](.\u002Ftutorials\u002F2-Advanced_Features.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Advanced_features-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F2-Advanced_Features.ipynb)\n- [**3 - 储层计算通用介绍**](.\u002Ftutorials\u002F3-General_Introduction_to_Reservoir_Computing.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Introduction_to_RC-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F3-General_Introduction_to_Reservoir_Computing.ipynb)\n- [**4 - 理解并优化超参数**](.\u002Ftutorials\u002F4-Understand_and_optimize_hyperparameters.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Hyperparameters-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F4-Understand_and_optimize_hyperparameters.ipynb)\n- [**5 - 使用储层计算进行分类**](.\u002Ftutorials\u002F5-Classification-with-RC.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_Classification-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F5-Classification-with-RC.ipynb)\n- [**6 - ReservoirPy 与 scikit-learn 接口对接**](.\u002Ftutorials\u002F6-Interfacing_with_scikit-learn.ipynb)\n[![Google Colab 教程](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTutorial:_scikit--learn_interface-525252?style=flat&logo=googlecolab&logoColor=%23F9AB00)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F6-Interfacing_with_scikit-learn.ipynb)\n\n### 示例\n\n对于高级用户，我们还展示了部分关于**水库计算（Reservoir Computing）**论文的重现，以展示库的一些功能。\n\n- [**利用内在可塑性（Intrinsic Plasticity）改进水库** (Schrauwen et al., 2008)](\u002Fexamples\u002FImproving%20reservoirs%20using%20Intrinsic%20Plasticity\u002FIntrinsic_Plasiticity_Schrauwen_et_al_2008.ipynb)\n- [**用于信息流分块（Chunking）的交互式水库计算** (Asabuki et al., 2018)](\u002Fexamples\u002FInteractive%20reservoir%20computing%20for%20chunking%20information%20streams\u002FChunking_Asabuki_et_al_2018.ipynb)\n- [**下一代水库计算** (Gauthier et al., 2021)](\u002Fexamples\u002FNext%20Generation%20Reservoir%20Computing\u002FNG-RC_Gauthier_et_al_2021.ipynb)\n- [**稳定性边缘回声状态网络（Echo State Network）** (Ceni et al., 2023)](\u002Fexamples\u002FEdge%20of%20Stability%20Echo%20State%20Network\u002FEdge_of_stability_Ceni_Gallicchio_2023.ipynb)\n\n\n## 使用 ReservoirPy 的论文和项目\n\n*如果您希望您的论文出现在这里，请联系我们（见下方的联系链接）。*\n\n- ( [HAL](https:\u002F\u002Finria.hal.science\u002Fhal-04354303) | [PDF](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2312.06695) | [Code](https:\u002F\u002Fgithub.com\u002Fcorentinlger\u002FER-MRL) ) Leger 等人 (2024) *Evolving Reservoirs for Meta Reinforcement Learning.* EvoAPPS 2024\n- ( [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2204.02484) | [PDF](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2204.02484) ) Chaix-Eichel 等人 (2022) *From implicit learning to explicit representations.* arXiv preprint arXiv:2204.02484.\n- ( [HTML](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-86383-8_6) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203374) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203374\u002Fdocument) ) Trouvain & Hinaut (2021) *Canary Song Decoder: Transduction and Implicit Segmentation with ESNs and LTSMs.* ICANN 2021\n- ( [HTML](https:\u002F\u002Fieeexplore.ieee.org\u002Fabstract\u002Fdocument\u002F9515607) ) Pagliarini 等人 (2021) *Canary Vocal Sensorimotor Model with RNN Decoder and Low-dimensional GAN Generator.* ICDL 2021.\n- ( [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03244723\u002F) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03244723\u002Fdocument) ) Pagliarini 等人 (2021) *What does the Canary Say? Low-Dimensional GAN Applied to Birdsong.* HAL preprint.\n- ( [HTML](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-86383-8_7) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203318) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-03203318) ) Hinaut & Trouvain (2021) *Which Hype for My New Task? Hints and Random Search for Echo State Networks Hyperparameters.* ICANN 2021\n\n## 精彩的水库计算资源\n\n我们在此提供了一个精选的**水库计算（Reservoir Computing）**教程、论文、项目和工具列表（不一定与 ReservoirPy 相关）：\n\n**https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Fawesome-reservoir-computing**\n\n## 联系方式\n\n如果您有关于该库的问题，请提交一个 issue。\n\n如果您有更一般的问题或反馈，可以通过电子邮件联系我们：**xavier dot hinaut the-famous-home-symbol inria dot fr**。\n\n## 引用 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:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007\u002F978-3-030-61616-8_40) | [HAL](https:\u002F\u002Fhal.inria.fr\u002Fhal-02595026) | [PDF](https:\u002F\u002Fhal.inria.fr\u002Fhal-02595026\u002Fdocument) )\n\n如果您在研究中使用了 ReservoirPy，请使用以下 bibtex 条目引用我们的包：\n\n```\n@incollection{Trouvain2020,\n  doi = {10.1007\u002F978-3-030-61616-8_40},\n  url = {https:\u002F\u002Fdoi.org\u002F10.1007\u002F978-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## 致谢\n\n\u003Cdiv align=\"left\">\n  \u003Cimg src=\".\u002Fstatic\u002Finria_red.svg\" width=300>\u003Cbr>\n\u003C\u002Fdiv>\n\n\n本包由法国波尔多 Inria 的 [Mnemosyne](https:\u002F\u002Fteam.inria.fr\u002Fmnemosyne\u002F) 小组开发和支持。[Inria](https:\u002F\u002Fwww.inria.fr\u002Fen) 是一家法国的数字科学研究所（计算机科学、数学、机器人技术等...）。","# reservoirpy 快速上手指南\n\n**ReservoirPy** 是一个简单且灵活的开源库，专为构建储备池计算（Reservoir Computing）架构而设计，例如回声状态网络（Echo State Networks, ESN）。它支持复杂的网络结构、多种学习规则以及与 scikit-learn 的无缝集成。\n\n## 环境准备\n\n*   **操作系统**: Linux, macOS, Windows\n*   **Python 版本**: Python 3.7 及以上版本\n*   **包管理工具**: pip\n\n建议在一个干净的虚拟环境中进行安装，以避免依赖冲突。\n\n## 安装步骤\n\n通过 pip 安装核心库：\n\n```bash\npip install reservoirpy\n```\n\n如需使用超参数搜索等高级功能，请参考官方文档中的完整安装指南。\n\n## 基本使用\n\n以下示例展示了如何使用 ReservoirPy 对 Mackey-Glass 混沌时间序列进行预测。\n\n### 1. 导入必要的模块\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\n### 2. 加载数据集并划分训练集与测试集\n\n```python\nX = mackey_glass(n_timesteps=2000)  # (2000, 1)-shaped array\n# create y by shifting X, and train\u002Ftest split\nx_train, x_test, y_train, y_test = to_forecasting(X, test_size=0.2)\n```\n\n### 3. 构建回声状态网络 (ESN)\n\n创建一个包含 100 个神经元的储备池，并连接一个带有 L2 正则化的读出头（Readout）。\n\n```python\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 >> readout\n```\n\n### 4. 训练、运行与评估\n\n```python\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\n更多教程和示例请访问 [Google Colab Tutorials](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F1-Getting_Started.ipynb) 或查阅 [官方文档](https:\u002F\u002Freservoirpy.readthedocs.io\u002F)。","某工业物联网团队正在开发电机健康监测系统，需利用历史振动传感器数据预测未来故障趋势，面对复杂的非线性混沌时间序列挑战。\n\n### 没有 reservoirpy 时\n- 需要从零手写回声状态网络（ESN）的矩阵运算代码，数学实现繁琐且极易出现数值稳定性问题\n- 调整稀疏度、连接率等关键超参数全靠手动网格搜索，耗时极长且难以找到全局最优解\n- 模型训练速度慢，无法利用多核并行加速，导致难以满足产线实时监控的延迟要求\n- 难以将自定义时序模型无缝集成到现有的 scikit-learn 工作流中，评估指标对接困难\n\n### 使用 reservoirpy 后\n- 通过简洁的 API 直接调用 Reservoir 节点，快速搭建包含反馈回路的深层复杂架构\n- 内置 hyperopt 接口自动探索最优超参数组合，大幅缩短实验周期并提升模型泛化能力\n- 支持稀疏矩阵计算与并行实现，显著提升了大规模时序数据的训练速度与内存效率\n- 完美兼容 scikit-learn 接口，方便结合 Ridge 回归等算法进行端到端的预测建模\n\nreservoirpy 让工程师能专注于业务逻辑而非底层数学实现，极大降低了复杂时序预测任务的开发与部署门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Freservoirpy_reservoirpy_34a1673f.png","ReservoirPy","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Freservoirpy_3cfdcbfa.png","Simple and flexible code for Reservoir Computing architectures like Echo State Networks (ESN).",null,"https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Findex.html","https:\u002F\u002Fgithub.com\u002Freservoirpy",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,620,141,"2026-04-04T14:13:29","MIT",1,"未说明",{"notes":93,"python":91,"dependencies":94},"该库专注于储备池计算架构（如回声状态网络 ESN），支持多储备池复杂架构、反馈连接及稀疏矩阵计算。超参数优化需使用 hyperopt 库。提供 Google Colab 教程及 ReadTheDocs 文档。由法国 Inria 研究所开发。",[95,96,97,98],"scikit-learn","hyperopt","numpy","scipy",[13],[101,102,103,104,105,106,107,108,109,110,111,112,113,114],"esn","reservoir","echo-state-networks","timeseries","timeseries-prediction","python","reservoir-computing","timeseries-forecasting","machine-learning","machine-learning-algorithms","recurrent-neural-networks","neural-network","artificial-intelligence","timeseries-analysis","2026-03-27T02:49:30.150509","2026-04-06T08:45:34.939592",[118,123,127,132,137,141],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},3449,"如何优化 ReservoirPy 的超参数搜索空间配置？","建议固定神经元数量 N 进行独立搜索（例如分别尝试 N=100, 300, 1000），并在第一次搜索中固定 `input_scaling`。`hp_max_evals` 设为 200 通常足以进行粗略估计，之后可减少参数范围并使用其他搜索方法（如 tpe）。同时可将 `instances_per_trial` 降至 5 以节省时间。注意避免将 `input_scaling` 错误设置为整数种子值（如 1234），应设为浮点数范围或正确的 choice 值。","https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fissues\u002F190",{"id":124,"question_zh":125,"answer_zh":126,"source_url":122},3450,"完成超参数搜索后，如何进一步验证或调优模型？","在使用最佳超参数构建模型后，可以尝试手动逐个微调参数以更好地理解它们的影响。此外，可以参考 Hyperopt 官方文档了解 `choice` 和 `loguniform` 的具体行为，并结合相关论文资源深入分析结果。",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},3451,"ReservoirPy 中 `.fit()\u002F.run()` 与直接调用模型对数据形状有什么要求？","`.fit` 和 `.run` 方法期望数组具有 2 轴（或 3 轴，或多系列列表）。而 `.call` 或直接调用 `model(x)` 期望 1 轴数组（代表单个时间步）。务必检查数据维度以匹配方法要求，避免因形状不匹配导致错误。","https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fissues\u002F186",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},3452,"如何将 Lorenz 系统等不同变量的时序轨迹绘制在独立的图表中？","这是 matplotlib 绘图库的问题。需要创建多个 figure 对象，分别为每个变量（如 x[:, 0], x[:, 1], x[:, 2]）绘制单独的图形，而不是默认将它们叠加在同一张图上。","https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fissues\u002F76",{"id":138,"question_zh":139,"answer_zh":140,"source_url":136},3453,"ReservoirPy 是否支持在树莓派（Raspberry Pi）等嵌入式设备上运行？","支持。只要树莓派操作系统安装了 Python 3.8 或更高版本，ReservoirPy 即可正常运行，因为树莓派本质上是微型计算机，只需满足 Python 环境要求即可。",{"id":142,"question_zh":143,"answer_zh":144,"source_url":122},3454,"哪里可以找到关于 Reservoir 反馈机制（Feedback）实现的详细资源？","建议阅读官方文档、教程以及相关的发表论文。维护者推荐了 Hyperopt 的官方文档链接以及一篇关于 reservoir computing 的论文链接（iopscience.iop.org...）来获取更深入的实现细节和理论背景。",[146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241],{"id":147,"version":148,"summary_zh":149,"released_at":150},112744,"v0.3.15","## New features\r\n- New method for random search with parallelization: hyper.parallel_research. See https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F204 @Romain2C \r\n\r\n## Bug fixes\r\n- Fix permission error when ReservoirPy is used by multiple users on the same machine. See https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F203 @Romain2C \r\n\r\n## Small changes\r\n- Remove useless logger (import logging) in japanese_vowels dataset","2025-09-24T15:08:28",{"id":152,"version":153,"summary_zh":154,"released_at":155},112745,"v0.4.1","This version follows the v0.4.0 rewrite and introduces the long-awaited **Jax backend!**\r\n\r\n### Changes\r\n\r\n- **Addition of the Jax backend:**\r\n   - Nodes and models can now use the high-performance numerical computing library [JAX](https:\u002F\u002Fgithub.com\u002Fjax-ml\u002Fjax\u002F) in place of numpy.\r\n   - Most imports can be prepended by `reservoirpy.jax.` instead of `reservoirpy.`\r\n   - This requires the jax library to be installed. You can install it using the `jax` extra dependency: `pip install --upgrade reservoirpy[jax]`.\r\n- Models with multiple inputs can receive one node input instead of a mapping. In that case, all input nodes will receive the same input.\r\n- Reintroduced `Model.reset` method\r\n- `reservoir.ESN` model now receives an additional argument: `return_reservoir_activity`. If `True`, the activity of the reservoir will be returned in a dict alongside the readout output.\r\n- Better string representation of node, models and matrix initializers\r\n- All extra dependencies can be installed using `pip install reservoirpy[all]`\r\n- Optimization of the `datasets.mackey_glass` method.\r\n\r\n### Bug fixes\r\n\r\n- Fix: `matplotlib` was necessary to import `reservoirpy` even if it is an optional dependency\r\n- Fix: incorrect bias for the `Ridge` node when trained on multiple timeseries\r\n- Fix: the warmup argument would not work on unsupervised parallel trainable nodes","2025-09-19T20:24:33",{"id":157,"version":158,"summary_zh":159,"released_at":160},112746,"v0.4.0","ReservoirPy v0.4 is a new major release, the first major update since ReservoirPy v0.3 was released in January 2022. This version is still under development, and new minor updates are expected in the near future. Since this version is a major rewrite of the library's core mechanisms (namely Nodes and Models), you can expect many breaking changes, including small, hard-to-notice changes. If you already have existing code using ReservoirPy v0.3, consider carefully testing your code against v0.4, or pin your `reservoirpy` dependency to version 0.3. (i.e. using `reservoirpy==0.3.*` in your requirements.txt).\r\n\r\n\r\n## New features\r\n\r\n- New method for random search with parallelization: `hyper.parallel_research`. See #204\r\n- New node: Edge of Stability Echo State Network (`reservoirpy.nodes.ES2N`).\r\n- `LocalPlasticityReservoir` now accepts any array format for its recurrent weight matrix.\r\n- Parallel run: All nodes and models can be run in parallel on multiple timeseries.\r\n- Parallel fit: All models can be fit in parallel on multiple timeseries if all its trainable nodes can be fit in parallel.\r\n- Stabilized the leaky-integrate-and-fire liquid state machine (`nodes.LIF`).\r\n\r\n## API changes, parameter renaming and reordering\r\n\r\n- In `mat_gen.Initializer`: `autorize_*` -> `allow_*`.\r\n- `ridge` is now the first parameter of `nodes.Ridge`: you can now write `Ridge(1e-6)`\r\n- Renamed `nodes.Ridge`, `nodes.LMS` and `nodes.RLS` boolean argument: `input_bias` -> `fit_bias`.\r\n- Renamed argument for `nodes.LMS`: `alpha` -> `learning_rate`.\r\n- Renamed `Node.train` method to `Node.partial_fit` to match scikit-learn API.\r\n- Added `Node.predict` alias of `Node.run` to match scikit-learn API.\r\n- Removed `forced_teachers` argument in Model.fit, as `forced_teachers=False` didn't work.\r\n- `datasets.narma` now returns the input time series along with its output. See #142\r\n- Changed `datasets.japanese_vowels` output order to `x_train, x_test, y_train, y_test`. See #179\r\n- Free-running Node and Models: models that expect a dimensionless input can simply be called without an input: `model()` or `model.run(iters=n)`.\r\n- State of a node is now a dictionary of str -> array instead of a single array. The last output of a Node can be fetched using `node.state[\"out\"]`.\r\n- `ESN` is now located at the root of the library: `reservoirpy.nodes.ESN` -> `reservoirpy.ESN`.\r\n\t-> Since parallelization can now be done on any model, this is just a convenient wrapper to create simple models.\r\n- Reservoir now has a default value for `sr` (= 1.0).\r\n- Set default verbosity to 0 (no verbosity).\r\n- Timesteps are now 1D arrays (n_features,) instead of (n_features, 1).\r\n- Node states are now 1D arrays (output_dim,) instead of (output_dim, 1).\r\n- bias and similar are now 1D arrays (output_dim,) instead of (output_dim, 1).\r\n- Added typing to most of ReservoirPy's API.\r\n- Parameters of a scikit-learn model are passed directly as ScikitLearnNode keyword arguments instead of the previous `model_hypers` dict argument.\r\n\r\n## Internals\r\n\r\n- Removed `seaborn` dependency for the `hyper` submodule.\r\n- Removed `dill` dependency.\r\n- Removed the memmap buffer mechanism.\r\n- Dropped support for all parallelization backends (only `loky` is used now).\r\n- Edges in `Model` can now have an arbitrary delay.\r\n- Removed feedback mechanism in favor of edges with a delay of 1.\r\n- `mat_gen.Initializer`s keep their parameters.\r\n- In Model, the order of elements in lists and dicts is now consistent and well-defined (no use of sets). See #114 & #115\r\n    - Same for execution order.\r\n- Changes to the naming mechanism:\r\n\t- Removed the global tracking of node names.\r\n\t- Node names are now optional.\r\n\t- Two nodes with the same name cannot be in the same model.\r\n    - If there are multiple inputs or outputs to a model, all input\u002Foutput nodes must be named in order to be differentiated.\r\n- Trainable nodes no longer have initialized values before fitting.\r\n\r\n## Bug fixes\r\n\r\n- Bias in `nodes.Ridge` was regularized.\r\n- `mat_gen` random sparse methods used to have an incorrect density if `ndim > 2`.\r\n- In `mat_gen.cluster`, clusters used to all have the same weights.\r\n- In `mat_gen.small_world`, `sparsity_type` parameter didn't work.\r\n- ESN output and new state were inconsistent depending on the number of workers. Fixes #193 \r\n    - Now in v0.4, when running\u002Ffitting a model on multiple time series at once, the same starting state is used for all timeseries.\r\n    - Now in v0.4, when running\u002Ffitting a model on multiple time series at once, the new state of the nodes is the state of the model run on the last timeseries.\r\n- Fix permission error when ReservoirPy is used by multiple users on the same machine. See #203\r\n- Scaling a matrix to a desired spectral radius now uses ReservoirPy's random number generator.\r\n\r\n## Removed features\r\n\r\n- Removed `compat` module (ReservoirPy v0.2.4).\r\n- Removed `nodes.FORCE` node. Use `nodes.RLS` or `nodes.LMS` instead.\r\n- Removed `nodes.from_sklearn`. Use `nodes.ScikitLe","2025-08-23T15:44:49",{"id":162,"version":163,"summary_zh":164,"released_at":165},112747,"v0.3.14","# Changes\r\n* Implement [small world](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.mat_gen.small_world.html) matrix generation based on Watts Strogatz model\r\n* Implement [cluster](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fapi\u002Fgenerated\u002Freservoirpy.mat_gen.cluster.html) matrix generation based on Erdos-Rényi clustered matrix algorithm\r\n* Implement missing values filtering in target data : #198 \r\n   See [the guide on working with incomplete target data](https:\u002F\u002Freservoirpy.readthedocs.io\u002Fen\u002Flatest\u002Fuser_guide\u002Fadvanced_demo.html#Working-with-incomplete-target-data).\r\n\r\n## Small Changes\r\n\r\n* Fix documentation for Reservoir equation : fixes #199 \r\n* Updated scikit-learn version requirements : now restricted to \u003C1.7.0\r\n\r\n# Contributors \r\n* @FrankwaP in #198\r\n* @PAUL-BERNARD in #199\r\n* @Julien06T in cluster matrix generation and missing values filtering \r\n* @Axel-Arnaud-hub in small world matrix generation and missing values filtering","2025-08-01T13:27:36",{"id":167,"version":168,"summary_zh":169,"released_at":170},112748,"v0.3.13post1","### Changes\r\n\r\n- Documentation: Fixed dataset plots\r\n- Documentation: Detailed LocalPlasticityReservoir documentation\r\n- Documentation: Added a gallery in API reference\r\n- Documentation: Added more images in User Guide (fixes #189 & fixes #104  )\r\n","2025-05-06T14:46:46",{"id":172,"version":173,"summary_zh":174,"released_at":175},112749,"v0.3.13","# Changes\r\n\r\n- New node: LocalPlasticityReservoir ( #181 )\r\n- Two additional hyper-parameter search methods: adaptive TPE (`atpe`) and simulated annealing (`anneal`) ( #183 )\r\n- RLS node can now have a forgetting factor ( #185 )\r\n- Fix: `qlognormal` scale can now be used in hyperparameter search ( #182 )\r\n- New argument for the Mackey-Glass timeseries generator: `history` ( #119 )\r\n- Fix: missing documentation for some matrix generators\r\n\r\n# Contributors\r\n\r\n- @anabdck in #185\r\n- @vitia-fritelle in #183 & #182\r\n- @FineBouche in #181\r\n- @arashgmn in #119","2025-04-03T13:44:24",{"id":177,"version":178,"summary_zh":179,"released_at":180},112750,"v0.3.12","# Major changes\r\n\r\n- Experimental: Leaky-integrate and fire spiking reservoir.\r\n    This is a first step towards a complete integration of Liquid State Machines into ReservoirPy. Please send us feedback on this experimental node by mail or by raising an issue !\r\n- Ring topology: neuron connections forms a loop\r\n- Orthogonal recurrent matrices\r\n- Line topology: neuron connections forms a line\r\n- Consistency: Existing params and hypers can be modified directly (`node.param = ...` instead of `node.params[\"param\"]`) \r\n- Observables:\r\n    - memory capacity\r\n    - Dimensionwise scores: observables can now return a list of scores for each dimension, with the dimensionwise parameter.\r\n    - Effective spectral radius: metrics proposed in [(Jaeger, 2007)](https:\u002F\u002Fdoi.org\u002F10.1016\u002Fj.neunet.2007.04.016) (requested in #109 )\r\n- Dataset: \r\n    - Multiple Superimposed Oscillator\r\n    - Santa-Fe laser dataset (fixes #171 )\r\n    - Easy import of classification datasets from the timeseriesclassification.com website\r\n    - One-hot encoder that is ReservoirPy-compatible\r\n\r\n\r\n# Minor changes\r\n\r\n- NumPy v2.0 compatibility (fixes #169 )\r\n- Bugfix: ESN node with feedback failed (bug introduced in latest version) (fixes #166 )\r\n- Bugfix: Weird behavior of hyperparameter plotting when one of the parameters had a linear scale (fixes #106 )\r\n- Bugfix: hyperparameter searches with \"randint\" hyperparameter scale failed to be saved correctly in the json file\r\n- Bugfix: Incorrect model creation with many node-to-node connections\r\n- JSON files generated with hyperparameter exploration are now pretty-printed \r\n- Some error messages improvements & documentation correction (fixes #167 , fixes #160 )\r\n","2024-11-12T17:54:03",{"id":182,"version":183,"summary_zh":184,"released_at":185},112751,"v0.3.11","# Major changes\r\n\r\n- Fixed `numpy.memmap` concurrent accesses. Which fixes many issues with parallelization. The memmap name is now unique for each buffer. \r\n    Fixes #141, fixes #112, fixes #57\r\n- Sparse matrix initializers in `mat_gen` can now take a `degree` argument instead of `connectivity`. \r\n- `Delay` node, which returns its input with a specified delay.\r\n- Complete reimplementation of the `ScikitLearnNode` introduced in ReservoirPy v0.3.10. This has breaking changes, as the previous implementation was not consistent with the library node API. The tutorial has subsequently been updated.\r\n- Dropped support for Python 3.6. Python 3.7 should still work though it reached [end-of-life](https:\u002F\u002Fdevguide.python.org\u002Fversions\u002F). \r\n\r\n# Minor changes\r\n\r\n- `dataset.narma` now takes a `u` parameter so that the input timeseries can be accessed. Fixes #142\r\n- Fix : The ESN node now has consistent results across backends\r\n- Creating a Reservoir node with incorrect argument now raises a `ValueError`. Fixes #138 \r\n- Fix: the default `Node.partial_backward` method of offline nodes didn't concatenate output timeseries correctly.\r\n- Many small corrections in documentation. In particular:\r\n   - Fix #134 \r\n   - Fix #111 \r\n   - Added documentation for the `Concat` node","2024-02-03T17:48:04",{"id":187,"version":188,"summary_zh":189,"released_at":190},112752,"v0.3.10","# Major changes\r\n\r\n- Addition of a ScikitLearnNode :  [scikit-learn linear models](https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fmodules\u002Flinear_model.html) can now be used as ReservoirPy's nodes. This can be used in particular for classification.\r\nA detailed tutorial on how to use this new node can be found [here](https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fblob\u002Fmaster\u002Ftutorials\u002F6-Sklearn-node.ipynb). \r\nThis fixes #82 \r\n\r\n(by @Deepayan137 )\r\n\r\n# Minor changes\r\n\r\n- Removed SciPy upper bound, as older scipy versions are now unsupported and uncompatible with more recent Python versions \r\nThis fixes #128 and #135\r\n- Fix: synchronized dependencies versions across the different config files","2023-11-20T18:13:04",{"id":192,"version":193,"summary_zh":194,"released_at":195},112753,"v0.3.9.post1","## Major Fix\r\n\r\n- `ESN.run` had the same problem as `ESN.fit` when using `multiprocessing` as joblib backend.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.9...v0.3.9.post1","2023-07-18T10:04:47",{"id":197,"version":198,"summary_zh":199,"released_at":200},112754,"v0.3.9","## Major fixes\r\n\r\n-  Deterministic behavior of Concat node: fix a major issue with Concat nodes being fed inputs in random order (#115 #114 by @PAUL-BERNARD)\r\n- `japanese_vowels` link was dead, the dataset could not be loaded (#113).\r\n- Using `multiprocessing` as joblib backend was failing because of a locale function in  `ESN.fit`.\r\n\r\n# Minor Fixes\r\n\r\n- Fixed rsquare averaging y_pred instead of y_true (#110 by @HugoChateauLaurent).\r\n- Improved robustness of spectral radius computation for reproducibility (#116 by @PAUL-BERNARD) .\r\n- `dataset` module coherence and precision: Add `**kwargs` everywhere, fix some issues with timeseries length (#118 #117)\r\n- Typos in Reservoir equations (#101)\r\n\r\n## New Contributors\r\n* @PAUL-BERNARD made their first contribution in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F116\r\n* @HugoChateauLaurent made their first contribution in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F110\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.8...v0.3.9","2023-07-17T10:03:11",{"id":202,"version":203,"summary_zh":204,"released_at":205},112755,"v0.3.8","# Major changes\r\n\r\n- Leak rate `lr` in reservoir nodes can now be an array or list of float values, one per neurons.\r\n\r\n## What's Changed\r\n* V0.3.8 by @nTrouvain in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F108\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.7...v0.3.8","2023-05-31T15:20:42",{"id":207,"version":208,"summary_zh":209,"released_at":210},112756,"v0.3.7","## Minor fixes\r\n\r\n- Fix #97: noise is now consistently generated.\r\n- Fix #94: `h` parameter can now be changed in `datasets.mackey_glass`.\r\n- Fix #98: adding a `noise_kwargs` parameters to reservoir nodes (Reservoir and IPReservoir) to change noise distribution parameters.noise\r\n- Fix infinite loop of AttributeError on nodes.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.6...v0.3.7","2023-03-20T10:57:27",{"id":212,"version":213,"summary_zh":214,"released_at":215},112757,"v0.3.6","## Minor fixes\r\n\r\n- `Node.partial_fit` was not passing `kwargs` to the `partial_backward` function (omitting thread lock when using `ESN.fit` with several workers)\r\n- `ESN.fit` method missed a warmup argument.","2023-02-05T14:17:51",{"id":217,"version":218,"summary_zh":219,"released_at":220},112758,"v0.3.5","# Minor fixes\r\n\r\n- ReservoirPy was changing the default tempfile directory for the entire environement.","2022-05-30T12:35:21",{"id":222,"version":223,"summary_zh":224,"released_at":225},112759,"v0.3.4","# New features\r\n\r\n- Add Lorenz96, Rössler and Kuramoto-Sivashinsky attractors\u002Foscillators in `datasets` !\r\n\r\n# Minor changes\r\n\r\n- `FORCE` class is now split in two: `RLS` and `LMS` classes, to avoid confusion between FORCE algorithm and RLS\u002FLMS learning rules. `FORCE` is still available but deprecated.\r\n- Typo in documentation\r\n\r\n## What's Changed\r\n* Patch 0.3.2.post1 by @nTrouvain in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F66\r\n* v0.3.2 -> v0.3.3 by @nTrouvain in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F69\r\n* observables.py: add shape verification by @AlArths in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F71\r\n* Dev by @nTrouvain in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F72\r\n\r\n## New Contributors\r\n* @AlArths made their first contribution in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F71\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.2...v0.3.4","2022-05-17T12:18:44",{"id":227,"version":228,"summary_zh":229,"released_at":230},112760,"v0.3.3","# New features\r\n\r\n- Add `japanese_vowels` to `datasets` ! You can now dowload the Japanese vowels dataset to try Reservoir Computing on a well known pattern recognition task.\r\n\r\n# Major fixes\r\n\r\n- Incorrect import of `ArpackNoConvergence` Exception (#67)\r\n- Models with multiple inputs and complex branches were not created properly (`Concat` nodes were not created at the right place) (#68)\r\n- `Model.run` can now be called on multiple series (using lists of arrays or arrays with ndim > 2)\r\n\r\n# Minor fixes\r\n\r\n- `Lock` was used too soon in `Ridge.partial_fit`. Dot product is now performed in parallel.\r\n- Better data handling with complex models.\r\n- New `Unsupervised` node subclass can be used to mark a Node as unsupervised learner.\r\n- Update random state generator to `numpy.random.Generator` in `hyper.research`.\r\n- Other minor fixes in examples and typos.\r\n\r\n## What's Changed\r\n* Patch 0.3.2.post1 by @nTrouvain in https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fpull\u002F66\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.2...v0.3.3","2022-05-08T14:16:08",{"id":232,"version":233,"summary_zh":234,"released_at":235},112761,"v0.3.2.post1","## Bug fix\r\n- Fix feedback in `Model`: forced vectors were not used if they were adresses to sender.\r\n- Fix import error of `typing.Literal` with Python \u003C 3.8 (#65)\r\n- Fix random seed: `reservoirpy.set_seed` was not fixing Numpy random seed.\r\n- Fix frozen model list building in `ops.link`.\r\n- Fix problem with private data containers `_X` and `_Y`  for `Node.fit` that were mirroring themselves.\r\n\r\n## Other changes\r\n- Improve coverage in `reservoirpy.utils`\r\n- Add Python 3.7 in test matrix for GitHub runner.\r\n- Fix typing issues with Model built from linking or merging of nodes (not recognized as a Model by IDEs)\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.2...v0.3.2.post1","2022-03-25T16:43:18",{"id":237,"version":238,"summary_zh":239,"released_at":240},112762,"v0.3.2","## Minor changes\r\n- Adding new feature: **Intrinsic Plasticity** ! Allow to fit a Reservoir on some data to change its activation values distribution, using the node `reservoirpy.nodes.IPReservoir`.\r\n- Bias initializers for readouts (`Ridge` and `FORCE`).\r\n- Using arrays of input scaling is now possible.\r\n- Some nodes may now have several inputs (without using a `Concat` node to concatenate them).\r\n- Big code cleanup: new private core module `_base` declares the nodes basic API, including input\u002Foutput validation, train and forward procedures, Node abstract class and better feedback handlers.\r\n\r\n## Other fixes\r\n- Fix feedback system to avoid running twice nodes in distant feedback models, yielding incorrect results.\r\n- Fix some matrix generation problems (arrays of input scaling unsupported, some bugs with `zeros` not accepting `**kwargs`)\r\n- Fix readouts base API to allow bias initializers.\r\n- Improve coverage (79% -> 88% (+9pts))\r\n- Add documentation for all nodes\u002Fobservables\u002Factivation functions.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.1...v0.3.2","2022-03-18T15:29:45",{"id":242,"version":243,"summary_zh":244,"released_at":245},112763,"v0.3.1.post1","- Fix: apply input scalings defined as vectors to input matrices in Reservoir was not working with sparse matrices.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Freservoirpy\u002Freservoirpy\u002Fcompare\u002Fv0.3.1...v0.3.1.post1","2022-02-25T10:42:55"]