add frequency regulator
This commit is contained in:
17
src/learn.jl
17
src/learn.jl
@@ -10,7 +10,8 @@ using ..type, ..snnUtil
|
||||
|
||||
function compute_paramsChange!(kfn::kfn_1, modelError, outputError)
|
||||
modelError = reshape(modelError, (1,1,1,:)) # (1,1,1,batch)
|
||||
lifComputeParamsChange!(kfn.lif_phi,
|
||||
lifComputeParamsChange!(kfn.timeStep,
|
||||
kfn.lif_phi,
|
||||
kfn.lif_epsilonRec,
|
||||
kfn.lif_eta,
|
||||
kfn.lif_eRec,
|
||||
@@ -26,7 +27,8 @@ function compute_paramsChange!(kfn::kfn_1, modelError, outputError)
|
||||
kfn.inputSize,
|
||||
)
|
||||
|
||||
alifComputeParamsChange!(kfn.alif_phi,
|
||||
alifComputeParamsChange!(kfn.timeStep,
|
||||
kfn.alif_phi,
|
||||
kfn.alif_epsilonRec,
|
||||
kfn.alif_eta,
|
||||
kfn.alif_eRec,
|
||||
@@ -47,7 +49,6 @@ function compute_paramsChange!(kfn::kfn_1, modelError, outputError)
|
||||
kfn.on_epsilonRec,
|
||||
kfn.on_eta,
|
||||
kfn.on_eRec,
|
||||
kfn.on_wOut,
|
||||
kfn.on_wOutChange,
|
||||
kfn.on_arrayProjection4d,
|
||||
kfn.on_error,
|
||||
@@ -56,7 +57,8 @@ function compute_paramsChange!(kfn::kfn_1, modelError, outputError)
|
||||
# error("DEBUG -> kfn compute_paramsChange! $(Dates.now())")
|
||||
end
|
||||
|
||||
function lifComputeParamsChange!( phi::CuArray,
|
||||
function lifComputeParamsChange!( timeStep::CuArray,
|
||||
phi::CuArray,
|
||||
epsilonRec::CuArray,
|
||||
eta::CuArray,
|
||||
eRec::CuArray,
|
||||
@@ -88,12 +90,15 @@ function lifComputeParamsChange!( phi::CuArray,
|
||||
wRecChange .+= (-eta .* nError .* eRec)
|
||||
|
||||
#TODO frequency regulator
|
||||
wRecChange .+= 0.0001 .* ((firingTargetFrequency - (firingCounter./timeStep)) ./ timeStep) .*
|
||||
eta .* eRec
|
||||
|
||||
# reset epsilonRec
|
||||
epsilonRec .= 0
|
||||
end
|
||||
|
||||
function alifComputeParamsChange!( phi::CuArray,
|
||||
function alifComputeParamsChange!( timeStep::CuArray,
|
||||
phi::CuArray,
|
||||
epsilonRec::CuArray,
|
||||
eta::CuArray,
|
||||
eRec::CuArray,
|
||||
@@ -125,6 +130,8 @@ function alifComputeParamsChange!( phi::CuArray,
|
||||
wRecChange .+= (-eta .* nError .* eRec)
|
||||
|
||||
#TODO frequency regulator
|
||||
wRecChange .+= 0.0001 .* ((firingTargetFrequency - (firingCounter./timeStep)) ./ timeStep) .*
|
||||
eta .* eRec
|
||||
|
||||
# reset epsilonRec
|
||||
epsilonRec .= 0
|
||||
|
||||
Reference in New Issue
Block a user