add voltage regulator
This commit is contained in:
@@ -27,6 +27,7 @@ using .interface
|
||||
|
||||
""" version 0.0.7
|
||||
Todo:
|
||||
[] add voltage regulator
|
||||
[] synaptic liquidity range 0 to 100,000 -> 1.0 to 0.99
|
||||
[] add weight liquidity
|
||||
[-] add temporal summation in addition to already used spatial summation.
|
||||
|
||||
@@ -73,6 +73,7 @@ function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.lif_firingCounter,
|
||||
kfn.lif_recSignal,
|
||||
kfn.lif_exInType,
|
||||
kfn.lif_wRecChange,
|
||||
kfn.lif_neuronInactivityCounter,
|
||||
kfn.lif_synapticInactivityCounter,
|
||||
)
|
||||
@@ -98,6 +99,7 @@ function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.alif_firingCounter,
|
||||
kfn.alif_recSignal,
|
||||
kfn.alif_exInType,
|
||||
kfn.alif_wRecChange,
|
||||
kfn.alif_neuronInactivityCounter,
|
||||
kfn.alif_synapticInactivityCounter,
|
||||
kfn.alif_epsilonRecA,
|
||||
@@ -165,6 +167,7 @@ function lifForward( zit::CuArray,
|
||||
firingCounter::CuArray,
|
||||
recSignal::CuArray,
|
||||
exInType::CuArray,
|
||||
wRecChange::CuArray,
|
||||
neuronInactivityCounter::CuArray,
|
||||
synapticInactivityCounter::CuArray,
|
||||
)
|
||||
@@ -184,6 +187,7 @@ function lifForward( zit::CuArray,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
GeneralUtils.linear_to_cartesian,
|
||||
@@ -217,6 +221,7 @@ function lifForward( zit::CuArray,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
GeneralUtils.linear_to_cartesian; threads, blocks)
|
||||
@@ -239,6 +244,7 @@ function lifForward( zit,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
linear_to_cartesian,
|
||||
@@ -299,7 +305,9 @@ function lifForward( zit,
|
||||
synapticInactivityCounter[i1,i2,i3,i4] -= 1
|
||||
end
|
||||
end
|
||||
|
||||
# voltage regulator
|
||||
wRecChange[i1,i2,i3,i4] = -0.01*0.01 * (vt[i1,i2,i3,i4] - vth[i1,i2,i3,i4]) *
|
||||
zit[i1,i2,i3,i4]
|
||||
end
|
||||
end
|
||||
return nothing
|
||||
@@ -321,6 +329,7 @@ function alifForward( zit::CuArray,
|
||||
firingCounter::CuArray,
|
||||
recSignal::CuArray,
|
||||
exInType::CuArray,
|
||||
wRecChange::CuArray,
|
||||
neuronInactivityCounter::CuArray,
|
||||
synapticInactivityCounter::CuArray,
|
||||
epsilonRecA::CuArray,
|
||||
@@ -345,6 +354,7 @@ function alifForward( zit::CuArray,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
epsilonRecA,
|
||||
@@ -382,6 +392,7 @@ function alifForward( zit::CuArray,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
epsilonRecA,
|
||||
@@ -409,6 +420,7 @@ function alifForward( zit,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
exInType,
|
||||
wRecChange,
|
||||
neuronInactivityCounter,
|
||||
synapticInactivityCounter,
|
||||
epsilonRecA,
|
||||
@@ -486,6 +498,9 @@ function alifForward( zit,
|
||||
synapticInactivityCounter[i1,i2,i3,i4] -= 1
|
||||
end
|
||||
end
|
||||
# voltage regulator
|
||||
wRecChange[i1,i2,i3,i4] = -0.01*0.01 * (vt[i1,i2,i3,i4] - avth[i1,i2,i3,i4]) *
|
||||
zit[i1,i2,i3,i4]
|
||||
end
|
||||
end
|
||||
return nothing
|
||||
|
||||
@@ -446,7 +446,7 @@ function neuroplasticity(synapticConnectionNumber,
|
||||
projection = ones(i1,i2,i3)
|
||||
zitMask = zitMask .* projection # (row, col, n)
|
||||
totalNewConn = sum(isequal.(wRec, -1.0), dims=(1,2)) # count new conn mark (-1.0), (1, 1, n)
|
||||
# println("neuroplasticity, from $synapticConnectionNumber, $totalNewConn are replaced")
|
||||
println("neuroplasticity, from $(synapticConnectionNumber*size(totalNewConn, 3)) conn, $(sum(totalNewConn)) are replaced")
|
||||
|
||||
# clear -1.0 marker
|
||||
GeneralUtils.replace_elements!(wRec, -1.0, synapticInactivityCounter, -0.99)
|
||||
|
||||
Reference in New Issue
Block a user