dale_sparse

ReservoirComputing.dale_sparse — Function
dale_sparse([rng], [T], dims...;
    excitatory_fraction=0.8, sparsity=0.1, std=1.0,
    radius=1.0, ei_weight_ratio=1.0, return_sparse=false)

Dale-compliant sparse reservoir: first round(excitatory_fraction * n) columns excitatory (non-negative), rest inhibitory (non-positive). Inhibitory magnitudes scaled by ei_weight_ratio, then spectral radius to radius.

Arguments

  • rng: Random number generator. Default is Utils.default_rng() from WeightInitializers.
  • T: Element type. Default is Float32.
  • dims: Square matrix dimensions.

Keyword arguments

  • excitatory_fraction: Fraction of excitatory units in (0, 1). Default: 0.8.
  • sparsity: Fraction of zeros. Default: 0.1.
  • std: Sparse initialiser standard deviation. Default: 1.0.
  • radius: Spectral radius. Default: 1.0.
  • ei_weight_ratio: Inhibitory magnitude scale. Default: 1.0.
  • return_sparse: Sparse return (SparseArrays required). Default: false.

Examples

julia> rng = MersenneTwister(123);

julia> W = dale_sparse(rng, 10, 10; excitatory_fraction = 0.8, sparsity = 0.3);

julia> size(W) == (10, 10) && all(>=(0), W[:, 1:8]) && all(<=(0), W[:, 9:10])
true
source