水库Py (v0.3.12) ??
适用于 Echo State Networks (ESN) 等储层计算架构的简单而灵活的代码。
令人兴奋的消息!我们刚刚推出了一个基于大型语言模型的新测试版工具!您可以与我们的“ReservoirChat”聊天,询问有关储层计算或储层编码的任何问题! ?不要错过,限时供应! ⏳ https://chat.reservoirpy.inria.fr
从reservoirpy.nodes导入水库,山脊,Inputdata =输入(input_dim = 1)水库=水库(100,lr = 0.3,sr = 1.1)readout =山脊(ridge = 1e-6)esn =数据>>水库>> readoutforecast = esn.fit(X, y).run(时间序列)
ReservoirPy 是一个基于 Python 科学模块的简单用户友好库。它提供了一个灵活的接口来实现高效的油藏计算(RC) 架构,特别关注回声状态网络(ESN)。与基本的 Python 实现相比,ReservoirPy 的高级功能可以提高简单笔记本电脑上任何大小数据集的计算时间效率。
它的一些功能是:离线和在线训练、并行实现、稀疏矩阵计算、快速谱初始化、高级学习规则(例如本征可塑性)等。它还可以轻松创建具有多个储层(例如深层储层)的复杂架构,读数和复杂的反馈循环。此外,还包含图形工具,可以在hyperopt库的帮助下轻松探索超参数。最后,它包括几个探索奇异架构的教程和科学论文复制的示例。
该库适用于Python 3.8及更高版本。
在 Twitter 上关注 @reservoirpy 更新和新版本。
请参阅 ReservoirPy 官方文档,了解有关 ReservoirPy 主要功能、API 和安装过程的更多信息。或者您可以直接访问带有教程的用户指南。
pip安装reservoirpy
(有关更高级的安装选项,请参阅下文)
第 1 步:加载数据集
ReservoirPy 附带了一些方便的数据生成器,能够为众所周知的任务(例如 Mackey-Glass 时间序列预测)创建合成时间序列。
从reservoirpy.datasets导入mackey_glassX = mackey_glass(n_timesteps=2000)
第 2 步:创建回声状态网络...
...或您希望用来解决任务的任何类型的模型。在这个简单的用例中,我们将尝试回声状态网络(ESN),这是储层计算机器的最小架构之一。
ESN 由存储库(用于在高维(非线性)空间中对输入进行编码的随机循环网络)和读出器(负责读出所需输出的简单神经元前馈层)组成来自水库的激活。
从reservoirpy.nodes导入水库,Ridgereservoir =水库(单位= 100,lr = 0.3,sr = 1.25)readout = Ridge(output_dim = 1,ridge = 1e-5)
我们在这里获得了一个包含 100 个神经元、光谱半径为 1.25、泄漏率为 0.3 的储存器(您可以通过教程了解和优化超参数了解有关这些超参数的更多信息)。在这里,我们的读出层只是一个单元,我们将从水库(的所有单元)接收连接。请注意,仅训练读出层连接。这是所有油藏计算技术的基石之一。在我们的例子中,我们将使用线性回归来训练这些连接,正则化系数为 10 -5 。
现在,让我们使用>>
运算符连接所有内容。
esn = 水库 >> 读数
就是这样!下一步:调整读数权重来执行我们想要的任务。我们将训练 ESN 对我们的时间序列进行一步预测。
第 3 步:安装并运行 ESN
我们在时间序列的前 500 个时间步上训练 ESN,其中 100 个步用于预热存储状态。
esn.fit(X[:500], X[1:501], 预热=100)
我们的 ESN 现已经过培训并可供使用。让我们在时间序列的其余部分上运行它:
预测 = esn.run(X[501:-1])
作为快捷方式,这两项操作只需一行即可完成!
预测 = esn.fit(X[:500], X[1:501]).run(X[501:-1])
现在让我们评估一下它的性能。
第4步:评估ESN
fromreservoirpy.observables import rmse, rsquareprint("RMSE:", rmse(X[502:], 预测), "R^2 得分:", rsquare(X[502:], 预测))
运行并分析这个简单的文件(在“tutorials/Simple Examples with Mackey-Glass”文件夹中)以查看使用 ESN 进行时间序列预测的完整示例:
simple_example_MackeyGlass.py(使用ESN类)
python simple_example_MackeyGlass.py
如果您在测试某些示例时遇到问题,请查看 ReadTheDocs 中的扩展包要求。
要安装它,请使用以下命令之一:
pip安装reservoirpy
或者
pip安装reservoirpy==0.3.12
如果您想运行教程文件夹中的 Python Notebooks,请在需求文件中安装软件包(警告:这可能会降级已安装的 hyperopt 版本):
pip install -r 教程/requirements.txt
如果您想使用之前的版本 0.2.4,您可以使用以下命令安装 ReservoirPy:
pip安装reservoirpy==0.2.4
如果您想使用 hyperopt 启用hyper
包及其超参数优化助手,请使用:
pip安装reservoirpy[hyper]
转到教程文件夹以获取 Jupyter Notebooks 中的教程。
转到示例文件夹以获取示例和带有代码的论文,也在 Jupyter Notebooks 中。
ReservoirPy (v0.2) 教程可以在这篇论文中找到 (Trouvain et al. 2020)。
有关如何使用 ReservoirPy 和 Hyperopt 探索超参数的快速教程可以在本文中找到(Trouvain 等人,2020)。
看看我们在最近的论文中探索储层超参数的建议和方法:(Hinaut et al 2021) HTML HAL
用于超参数探索的教程和 Jupyter Notebook
更多关于hyperopt的信息:官方网站
如果您希望您的论文出现在此处,请联系我们(请参阅下面的联系链接)。
莱杰等人。 (2024) 不断发展的元强化学习储存库。 EvoAPPS 2024 HAL PDF 代码
柴克斯-艾歇尔等人。 (2022)从隐式学习到显式表示。 arXiv 预印本 arXiv:2204.02484。 arXiv PDF
Trouvain & Hinaut (2021) Canary 歌曲解码器:使用 ESN 和 LTSM 进行转导和隐式分段。 ICANN 2021 HTML HAL PDF
帕利亚里尼等人。 (2021) 带有 RNN 解码器和低维 GAN 生成器的 Canary 声音感觉运动模型。 ICDL 2021.HTML
帕利亚里尼等人。 (2021) 金丝雀说什么?低维 GAN 应用于鸟鸣。 HAL 预印本。哈尔PDF
我的新任务有哪些炒作?回声状态网络超参数的提示和随机搜索。 ICANN 2021 HTML HAL PDF
如果您对图书馆有疑问,请提出问题。如果您有更一般性的问题或反馈,您可以通过 Twitter 联系我们,或发送电子邮件至 xavier dot hinaut the-known-home-symbol inria dot fr。
Trouvain, N.、Pedrelli, L.、Dinh, TT、Hinaut, X. (2020) Reservoirpy:一个高效且用户友好的库,用于设计回声状态网络。国际人工神经网络会议(第 494-505 页)。施普林格、查姆. HTML HAL PDF
如果您在工作中使用 ReservoirPy,请使用以下 bibtex 条目引用我们的包:
@incollection{Trouvain2020, doi = {10.1007/978-3-030-61616-8_40}, url = {https://doi.org/10.1007/978-3-030-61616-8_40}, year = {2020}, publisher = {Springer International Publishing}, pages = {494--505}, author = {Nathan Trouvain and Luca Pedrelli and Thanh Trung Dinh and Xavier Hinaut}, title = {{ReservoirPy}: An Efficient and User-Friendly Library to Design Echo State Networks}, booktitle = {Artificial Neural Networks and Machine Learning {textendash} {ICANN} 2020} }
该软件包由法国波尔多 Mnemosyne 集团的 Inria 开发和支持。 Inria 是一家法国数字科学研究所(计算机科学、数学、机器人等)。