水庫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 是一家法國數位科學研究所(電腦科學、數學、機器人等)。