From edd26c180ddb3ce1c49bc3fe3e8b439c52ee76e3 Mon Sep 17 00:00:00 2001 From: ton Date: Wed, 20 Sep 2023 07:41:28 +0700 Subject: [PATCH] dev --- src/learn.jl | 4 ++-- src/snnUtil.jl | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/learn.jl b/src/learn.jl index 9156dd6..6668c60 100644 --- a/src/learn.jl +++ b/src/learn.jl @@ -470,7 +470,7 @@ function neuroplasticity(synapseConnectionNumber, # rewire synapse connection rewireSynapse!(wRec, neuronInactivityCounter, synapticActivityCounter, - synapseReconnectDelay, zitCumulative) + synapseReconnectDelay, synapseConnectionNumber, zitCumulative) # error("DEBUG -> neuroplasticity 1") elseif progress == 0 # no progress, no weight update, only rewire # -w all non-fire connection except mature connection @@ -481,7 +481,7 @@ function neuroplasticity(synapseConnectionNumber, # rewire synapse connection rewireSynapse!(wRec, neuronInactivityCounter, synapticActivityCounter, - synapseReconnectDelay, zitCumulative) + synapseReconnectDelay, synapseConnectionNumber, zitCumulative) # error("DEBUG -> neuroplasticity") else diff --git a/src/snnUtil.jl b/src/snnUtil.jl index d831ef9..5437849 100644 --- a/src/snnUtil.jl +++ b/src/snnUtil.jl @@ -119,8 +119,8 @@ function growRepeatedPath!(wRec, synapticActivityCounter, eta) # seperate active synapse out of inactive in this signal mask_activeSynapse = (!isequal).(synapticActivityCounter, 0) - # adjust weight based on vt progress and repeatition (80% +w, 20% -w) depend on epsilonRec - mask_more, mask_less, _ = rankMatrix(synapticActivityCounter, 0.2) # sort synapse from highest to lowest activity + # adjust weight based on vt progress and repeatition (40% +w, 60% -w) depend on epsilonRec + mask_more, mask_less, _ = rankMatrix(synapticActivityCounter, 0.6) # sort synapse from highest to lowest activity # +w, synapse with more than 10% of avg activity get increase weight by eta # mask_more = (!isless).(synapticActivityCounter, lowerlimit) @@ -165,8 +165,9 @@ end function rewireSynapse!(wRec::AbstractArray, neuronInactivityCounter::AbstractArray, synapticActivityCounter::AbstractArray, synapseReconnectDelay::AbstractArray, + synapseConnectionNumber::Integer, zitCumulative::AbstractArray) - _,_,i3,i4 = size(wRec) + i1,i2,i3,i4 = size(wRec) for n in 1:i3 # neuron-by-neuron if neuronInactivityCounter[1,1,n,i4][1] < -100000 # neuron die i.e. reset all weight println("neuron $n die")