11module ReservoirComputing
22
33using Adapt: adapt
4+ using ArrayInterface: ArrayInterface
45using Compat: @compat
6+ using ConcreteStructs: @concrete
57using LinearAlgebra: eigvals, mul!, I, qr, Diagonal
8+ using LuxCore: AbstractLuxLayer, AbstractLuxContainerLayer, AbstractLuxWrapperLayer,
9+ setup, apply, replicate
10+ import LuxCore: initialparameters, initialstates, statelength, outputsize
611using NNlib: fast_act, sigmoid
712using Random: Random, AbstractRNG, randperm
13+ using Static: StaticBool, StaticInt, StaticSymbol,
14+ True, False, static, known, dynamic, StaticInteger
815using Reexport: Reexport, @reexport
916using WeightInitializers: DeviceAgnostic, PartialFunction, Utils
1017@reexport using WeightInitializers
18+ @reexport using LuxCore: setup, apply
1119
1220abstract type AbstractReservoirComputer end
1321
22+ const BoolType = Union{StaticBool,Bool,Val{true },Val{false }}
23+ const InputType = Tuple{<: AbstractArray ,Tuple{<: AbstractArray }}
24+ const IntegerType = Union{Integer,StaticInteger}
25+
1426@compat (public, (create_states))
1527
28+ # layers
29+ include (" layers/lux_layers.jl" )
30+ include (" layers/esn_cell.jl" )
1631# general
1732include (" generics/states.jl" )
1833include (" generics/predict.jl" )
@@ -28,17 +43,21 @@ include("models/deepesn.jl")
2843include (" models/hybridesn.jl" )
2944include (" models/esn_predict.jl" )
3045
46+
47+
48+ export ESNCell, StatefulLayer, Readout, ReservoirChain, Collect, collectstates, train!, predict
49+
3150export NLADefault, NLAT1, NLAT2, NLAT3, PartialSquare, ExtendedSquare
3251export StandardStates, ExtendedStates, PaddedStates, PaddedExtendedStates
3352export StandardRidge
3453export chebyshev_mapping, informed_init, logistic_mapping, minimal_init,
35- modified_lm, scaled_rand, weighted_init, weighted_minimal
54+ modified_lm, scaled_rand, weighted_init, weighted_minimal
3655export block_diagonal, chaotic_init, cycle_jumps, delay_line, delay_line_backward,
37- double_cycle, forward_connection, low_connectivity, pseudo_svd, rand_sparse,
38- selfloop_cycle, selfloop_delayline_backward, selfloop_feedback_cycle,
39- selfloop_forward_connection, simple_cycle, true_double_cycle
56+ double_cycle, forward_connection, low_connectivity, pseudo_svd, rand_sparse,
57+ selfloop_cycle, selfloop_delayline_backward, selfloop_feedback_cycle,
58+ selfloop_forward_connection, simple_cycle, true_double_cycle
4059export add_jumps!, backward_connection!, delay_line!, reverse_simple_cycle!,
41- scale_radius!, self_loop!, simple_cycle!
60+ scale_radius!, self_loop!, simple_cycle!
4261export RNN, MRNN, GRU, GRUParams, FullyGated, Minimal
4362export train
4463export ESN, HybridESN, KnowledgeModel, DeepESN
0 commit comments