From dd57d17aee5f99639784edb137d6dda219f08ffd Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 19:45:16 +0100 Subject: [PATCH 01/15] turning tagbot off and on again --- .github/workflows/Downgrade.yml | 2 +- .github/workflows/TagBot.yml | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 .github/workflows/TagBot.yml diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 0b0fbfc2..453ea9b2 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -34,7 +34,7 @@ jobs: - uses: julia-actions/julia-downgrade-compat@v1 with: skip: Pkg,TOML - - uses: julia-actions/cache@v1 + - uses: julia-actions/cache@v2 with: token: ${{ secrets.GITHUB_TOKEN }} - uses: julia-actions/julia-buildpkg@v1 diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml deleted file mode 100644 index f49313b6..00000000 --- a/.github/workflows/TagBot.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: TagBot -on: - issue_comment: - types: - - created - workflow_dispatch: -jobs: - TagBot: - if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' - runs-on: ubuntu-latest - steps: - - uses: JuliaRegistries/TagBot@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - ssh: ${{ secrets.DOCUMENTER_KEY }} From 5807222ef88d2a161e003a3f3cfacb1c5caa26af Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 19:53:15 +0100 Subject: [PATCH 02/15] bump lower bound statistics --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 86eb9627..a13afb97 100644 --- a/Project.toml +++ b/Project.toml @@ -38,7 +38,7 @@ PartialFunctions = "1.2" Random = "1.10" Reexport = "1.2.2" SafeTestsets = "0.1" -Statistics = "1.10" +Statistics = "1.11.0" StatsBase = "0.34.4" Test = "1" WeightInitializers = "1.0.4" From d5fefc534120f9f5b0cb924a05dbe294a7e3c119 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 19:57:54 +0100 Subject: [PATCH 03/15] lower bound statistics fix --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index a13afb97..86eb9627 100644 --- a/Project.toml +++ b/Project.toml @@ -38,7 +38,7 @@ PartialFunctions = "1.2" Random = "1.10" Reexport = "1.2.2" SafeTestsets = "0.1" -Statistics = "1.11.0" +Statistics = "1.10" StatsBase = "0.34.4" Test = "1" WeightInitializers = "1.0.4" From f8ba3578e56b38f8769c99030762d6d77ff3cbf2 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:07:49 +0100 Subject: [PATCH 04/15] skipping LinearAlgebra in downgrade --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 453ea9b2..8bc00290 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,7 +33,7 @@ jobs: version: ${{ matrix.version }} - uses: julia-actions/julia-downgrade-compat@v1 with: - skip: Pkg,TOML + skip: Pkg, TOML, Random, LinearAlgebra - uses: julia-actions/cache@v2 with: token: ${{ secrets.GITHUB_TOKEN }} From 985bea018a77bff6ae4cb0d20ecd2ee713d9932d Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:09:10 +0100 Subject: [PATCH 05/15] skipping Statistics in downgrade --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index 8bc00290..dafc04d1 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,7 +33,7 @@ jobs: version: ${{ matrix.version }} - uses: julia-actions/julia-downgrade-compat@v1 with: - skip: Pkg, TOML, Random, LinearAlgebra + skip: Pkg, TOML, Random, LinearAlgebra, Statistics - uses: julia-actions/cache@v2 with: token: ${{ secrets.GITHUB_TOKEN }} From de1a7fdc484f01dc9e4943227f0890ac9b5ce0aa Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:11:20 +0100 Subject: [PATCH 06/15] bump lower bound adapt --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 86eb9627..db487743 100644 --- a/Project.toml +++ b/Project.toml @@ -25,7 +25,7 @@ RCLIBSVMExt = "LIBSVM" RCMLJLinearModelsExt = "MLJLinearModels" [compat] -Adapt = "3.3.3, 4" +Adapt = "4.1.1" Aqua = "0.8" CellularAutomata = "0.0.2" DifferentialEquations = "7" From 5fede3a3001e468d78d09829cf442267f0e30443 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:14:03 +0100 Subject: [PATCH 07/15] bump lower bound nnlib --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index db487743..18be15e3 100644 --- a/Project.toml +++ b/Project.toml @@ -33,7 +33,7 @@ Distances = "0.10" LIBSVM = "0.8" LinearAlgebra = "1.10" MLJLinearModels = "0.9.2, 0.10" -NNlib = "0.8.4, 0.9" +NNlib = "0.8.4, 0.9.26" PartialFunctions = "1.2" Random = "1.10" Reexport = "1.2.2" From a2882ec12d191cb3b63bd24fbfbd0fa4e5339bdc Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:15:57 +0100 Subject: [PATCH 08/15] bump lower bound nnlib --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 18be15e3..3d570910 100644 --- a/Project.toml +++ b/Project.toml @@ -33,7 +33,7 @@ Distances = "0.10" LIBSVM = "0.8" LinearAlgebra = "1.10" MLJLinearModels = "0.9.2, 0.10" -NNlib = "0.8.4, 0.9.26" +NNlib = "0.9.26" PartialFunctions = "1.2" Random = "1.10" Reexport = "1.2.2" From 56bb431a8b1a03cce695dc2743fb2cb7d3494303 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Fri, 3 Jan 2025 20:17:56 +0100 Subject: [PATCH 09/15] skip Test in downgrade --- .github/workflows/Downgrade.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml index dafc04d1..bbcfc4ba 100644 --- a/.github/workflows/Downgrade.yml +++ b/.github/workflows/Downgrade.yml @@ -33,7 +33,7 @@ jobs: version: ${{ matrix.version }} - uses: julia-actions/julia-downgrade-compat@v1 with: - skip: Pkg, TOML, Random, LinearAlgebra, Statistics + skip: Pkg, TOML, Test, Random, LinearAlgebra, Statistics - uses: julia-actions/cache@v2 with: token: ${{ secrets.GITHUB_TOKEN }} From 691fcca744174a2af6f96a933f4518a9c27804c7 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 15:29:21 +0100 Subject: [PATCH 10/15] cleaning project toml for docs --- docs/Project.toml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index dc7bca9e..7e2c2f67 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,5 +1,4 @@ [deps] -CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CellularAutomata = "878138dc-5b27-11ea-1a71-cb95d38d6b29" DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" @@ -12,12 +11,11 @@ ReservoirComputing = "7c2d2b1e-3dd4-11ea-355a-8f6a8116e294" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" [compat] -CUDA = "3, 4, 5" -CellularAutomata = "0.0.2" +CellularAutomata = "0.0.4" DifferentialEquations = "7" Documenter = "1" OrdinaryDiffEq = "6" Plots = "1" PredefinedDynamicalSystems = "1" -ReservoirComputing = "0.10" -StatsBase = "0.33, 0.34" +ReservoirComputing = "0.10.5" +StatsBase = "0.34.4" From 3215afbfe4559ae36d71e8fcf005cadcb6a88e8a Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 15:32:30 +0100 Subject: [PATCH 11/15] up version for differentialequations --- docs/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Project.toml b/docs/Project.toml index 7e2c2f67..d193484f 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -12,7 +12,7 @@ StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" [compat] CellularAutomata = "0.0.4" -DifferentialEquations = "7" +DifferentialEquations = "7.15.0" Documenter = "1" OrdinaryDiffEq = "6" Plots = "1" From c7c356a343c4cc15d6c95a7c831f94434ddc1c01 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 15:36:52 +0100 Subject: [PATCH 12/15] up version for differentialequations --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 3d570910..f939bba1 100644 --- a/Project.toml +++ b/Project.toml @@ -28,7 +28,7 @@ RCMLJLinearModelsExt = "MLJLinearModels" Adapt = "4.1.1" Aqua = "0.8" CellularAutomata = "0.0.2" -DifferentialEquations = "7" +DifferentialEquations = "7.15.0" Distances = "0.10" LIBSVM = "0.8" LinearAlgebra = "1.10" From 9a39884b31049dfabefb0c87fe2191a32c774195 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 16:16:43 +0100 Subject: [PATCH 13/15] fixing links, docs --- README.md | 3 +++ docs/make.jl | 4 ++-- docs/src/api/esn_variations.md | 2 +- docs/src/api/inits.md | 3 ++- docs/src/api/states.md | 2 +- docs/src/esn_tutorials/deep_esn.md | 2 +- docs/src/general/states_variation.md | 4 ++-- 7 files changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 20f7cbf2..94be56bf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@

+
[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip&message=chat&color=9558b2&labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged) @@ -11,9 +12,11 @@ [![Build status](https://badge.buildkite.com/db8f91b89a10ad79bbd1d9fdb1340e6f6602a1c0ed9496d4d0.svg)](https://buildkite.com/julialang/reservoircomputing-dot-jl) [![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor%27s%20Guide-blueviolet)](https://github.com/SciML/ColPrac) [![SciML Code Style](https://img.shields.io/static/v1?label=code%20style&message=SciML&color=9558b2&labelColor=389826)](https://github.com/SciML/SciMLStyle) +
# ReservoirComputing.jl + ReservoirComputing.jl provides an efficient, modular and easy to use implementation of Reservoir Computing models such as Echo State Networks (ESNs). For information on using this package please refer to the [stable documentation](https://docs.sciml.ai/ReservoirComputing/stable/). Use the [in-development documentation](https://docs.sciml.ai/ReservoirComputing/dev/) to take a look at at not yet released features. ## Quick Example diff --git a/docs/make.jl b/docs/make.jl index 07314e42..99e06512 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,7 +1,7 @@ using Documenter, ReservoirComputing -cp("./docs/Manifest.toml", "./docs/src/assets/Manifest.toml", force = true) -cp("./docs/Project.toml", "./docs/src/assets/Project.toml", force = true) +cp("./docs/Manifest.toml", "./docs/src/assets/Manifest.toml"; force=true) +cp("./docs/Project.toml", "./docs/src/assets/Project.toml"; force=true) ENV["PLOTS_TEST"] = "true" ENV["GKSwstype"] = "100" diff --git a/docs/src/api/esn_variations.md b/docs/src/api/esn_variations.md index c8df19e7..c319f8af 100644 --- a/docs/src/api/esn_variations.md +++ b/docs/src/api/esn_variations.md @@ -11,4 +11,4 @@ ```@docs HybridESN KnowledgeModel -``` \ No newline at end of file +``` diff --git a/docs/src/api/inits.md b/docs/src/api/inits.md index 83942c01..dd423518 100644 --- a/docs/src/api/inits.md +++ b/docs/src/api/inits.md @@ -1,4 +1,5 @@ # Echo State Networks Initializers + ## Input layers ```@docs @@ -17,4 +18,4 @@ cycle_jumps simple_cycle pseudo_svd -``` \ No newline at end of file +``` diff --git a/docs/src/api/states.md b/docs/src/api/states.md index 3a29d591..49b31bfd 100644 --- a/docs/src/api/states.md +++ b/docs/src/api/states.md @@ -22,4 +22,4 @@ ```@docs ReservoirComputing.create_states -``` \ No newline at end of file +``` diff --git a/docs/src/esn_tutorials/deep_esn.md b/docs/src/esn_tutorials/deep_esn.md index 412edadf..26ab0f00 100644 --- a/docs/src/esn_tutorials/deep_esn.md +++ b/docs/src/esn_tutorials/deep_esn.md @@ -2,7 +2,7 @@ Deep Echo State Network architectures started to gain some traction recently. In this guide, we illustrate how it is possible to use ReservoirComputing.jl to build a deep ESN. -The network implemented in this library is taken from [^1]. It works by stacking reservoirs on top of each other, feeding the output from one into the next. The states are obtained by merging all the inner states of the stacked reservoirs. For a more in-depth explanation, refer to the paper linked above. +The network implemented in this library is taken from [^1]. It works by stacking reservoirs on top of each other, feeding the output from one into the next. The states are obtained by merging all the inner states of the stacked reservoirs. For a more in-depth explanation, refer to the paper linked above. ## Lorenz Example diff --git a/docs/src/general/states_variation.md b/docs/src/general/states_variation.md index a1b0dab5..915d6c8a 100644 --- a/docs/src/general/states_variation.md +++ b/docs/src/general/states_variation.md @@ -6,11 +6,11 @@ In ReservoirComputing models, it's possible to perform alterations on the reserv ### Extending States -Extending the states involves appending the corresponding input values to the reservoir states. If \(\textbf{x}(t)\) represents the reservoir state at time \(t\) corresponding to the input \(\textbf{u}(t)\), the extended state is represented as \([\textbf{x}(t); \textbf{u}(t)]\), where \([;]\) denotes vertical concatenation. This procedure is commonly used in Echo State Networks and is described in [Jaeger's Scholarpedia](http://www.scholarpedia.org/article/Echo_state_network). You can extend the states in every ReservoirComputing.jl model by using the `states_type` keyword argument and calling the `ExtendedStates()` method. No additional arguments are needed. +Extending the states involves appending the corresponding input values to the reservoir states. If $\textbf{x}(t)$ represents the reservoir state at time $t$ corresponding to the input $\textbf{u}(t)$, the extended state is represented as $[\textbf{x}(t); \textbf{u}(t)]$, where $[;]$ denotes vertical concatenation. This procedure is commonly used in Echo State Networks and is described in [Jaeger's Scholarpedia](http://www.scholarpedia.org/article/Echo_state_network). You can extend the states in every ReservoirComputing.jl model by using the `states_type` keyword argument and calling the `ExtendedStates()` method. No additional arguments are needed. ### Padding States -Padding the states involves appending a constant value, such as 1.0, to each state. In the notation introduced earlier, padded states can be represented as \([\textbf{x}(t); 1.0]\). This approach is detailed in the [seminal guide](https://mantas.info/get-publication/?f=Practical_ESN.pdf) to Echo State Networks by Mantas Lukoševičius. To pad the states, you can use the `states_type` keyword argument and call the `PaddedStates(padding)` method, where `padding` represents the value to be concatenated to the states. By default, the padding value is set to 1.0, so most of the time, calling `PaddedStates()` will suffice. +Padding the states involves appending a constant value, such as 1.0, to each state. In the notation introduced earlier, padded states can be represented as $[\textbf{x}(t); 1.0]$. This approach is detailed in "A practical guide to applying echo state networks." by Lukoševičius, Mantas. To pad the states, you can use the `states_type` keyword argument and call the `PaddedStates(padding)` method, where `padding` represents the value to be concatenated to the states. By default, the padding value is set to 1.0, so most of the time, calling `PaddedStates()` will suffice. Additionally, you can pad the extended states by using the `PaddedExtendedStates(padding)` method, which also has a default padding value of 1.0. From c6b5430f63428bb024bbbe0090e44a01dd9b7448 Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 16:20:09 +0100 Subject: [PATCH 14/15] removing markdown formatting --- .JuliaFormatter.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.JuliaFormatter.toml b/.JuliaFormatter.toml index f0d96e5e..31e2a89b 100644 --- a/.JuliaFormatter.toml +++ b/.JuliaFormatter.toml @@ -1,5 +1,5 @@ style = "sciml" -format_markdown = true +format_markdown = false whitespace_in_kwargs = false margin = 92 indent = 4 From f0c1a717a78d98ec11a38c24af1877333eac7cbc Mon Sep 17 00:00:00 2001 From: MartinuzziFrancesco Date: Mon, 6 Jan 2025 17:19:41 +0100 Subject: [PATCH 15/15] removing scholarperdia link from docs --- docs/Project.toml | 2 +- docs/src/general/states_variation.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index d193484f..d372c202 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -11,7 +11,7 @@ ReservoirComputing = "7c2d2b1e-3dd4-11ea-355a-8f6a8116e294" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" [compat] -CellularAutomata = "0.0.4" +CellularAutomata = "0.0.2" DifferentialEquations = "7.15.0" Documenter = "1" OrdinaryDiffEq = "6" diff --git a/docs/src/general/states_variation.md b/docs/src/general/states_variation.md index 915d6c8a..e5767a24 100644 --- a/docs/src/general/states_variation.md +++ b/docs/src/general/states_variation.md @@ -6,7 +6,7 @@ In ReservoirComputing models, it's possible to perform alterations on the reserv ### Extending States -Extending the states involves appending the corresponding input values to the reservoir states. If $\textbf{x}(t)$ represents the reservoir state at time $t$ corresponding to the input $\textbf{u}(t)$, the extended state is represented as $[\textbf{x}(t); \textbf{u}(t)]$, where $[;]$ denotes vertical concatenation. This procedure is commonly used in Echo State Networks and is described in [Jaeger's Scholarpedia](http://www.scholarpedia.org/article/Echo_state_network). You can extend the states in every ReservoirComputing.jl model by using the `states_type` keyword argument and calling the `ExtendedStates()` method. No additional arguments are needed. +Extending the states involves appending the corresponding input values to the reservoir states. If $\textbf{x}(t)$ represents the reservoir state at time $t$ corresponding to the input $\textbf{u}(t)$, the extended state is represented as $[\textbf{x}(t); \textbf{u}(t)]$, where $[;]$ denotes vertical concatenation. This procedure is commonly used in Echo State Networks. You can extend the states in every ReservoirComputing.jl model by using the `states_type` keyword argument and calling the `ExtendedStates()` method. No additional arguments are needed. ### Padding States