dev
This commit is contained in:
@@ -20,7 +20,7 @@ function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.timeStep .= 1
|
||||
|
||||
# reset learning params
|
||||
kfn.zitCumulative = kfn.zitCumulative[:,:,1,:]
|
||||
kfn.zitCumulative = (kfn.zitCumulative[:,:,1] .= 0)
|
||||
|
||||
kfn.lif_vt .= 0
|
||||
kfn.lif_wRecChange .= 0
|
||||
@@ -44,6 +44,7 @@ function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.on_epsilonRec .= 0
|
||||
kfn.on_wOutChange .= 0
|
||||
kfn.on_refractoryCounter .= 0
|
||||
kfn.on_synapticActivityCounter .= 0
|
||||
|
||||
kfn.learningStage = [2]
|
||||
end
|
||||
@@ -153,6 +154,7 @@ function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.on_gammaPd,
|
||||
kfn.on_firingCounter,
|
||||
kfn.on_recSignal,
|
||||
kfn.on_synapticActivityCounter,
|
||||
)
|
||||
# get on_zt4d to on_zt
|
||||
kfn.on_zt .= reduce(max, kfn.on_zt4d, dims=(1,2))
|
||||
@@ -557,6 +559,7 @@ function onForward( zit::CuArray,
|
||||
gammaPd::CuArray,
|
||||
firingCounter::CuArray,
|
||||
recSignal::CuArray,
|
||||
synapticActivityCounter::CuArray,
|
||||
)
|
||||
|
||||
kernel = @cuda launch=false onForward( zit,
|
||||
@@ -573,6 +576,7 @@ function onForward( zit::CuArray,
|
||||
gammaPd,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
synapticActivityCounter,
|
||||
GeneralUtils.linear_to_cartesian,
|
||||
)
|
||||
config = launch_configuration(kernel.fun)
|
||||
@@ -602,6 +606,7 @@ function onForward( zit::CuArray,
|
||||
gammaPd,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
synapticActivityCounter,
|
||||
GeneralUtils.linear_to_cartesian; threads, blocks)
|
||||
end
|
||||
end
|
||||
@@ -621,6 +626,7 @@ function onForward( zit,
|
||||
gammaPd,
|
||||
firingCounter,
|
||||
recSignal,
|
||||
synapticActivityCounter,
|
||||
linear_to_cartesian,
|
||||
)
|
||||
i = (blockIdx().x - 1) * blockDim().x + threadIdx().x # gpu threads index
|
||||
@@ -661,6 +667,8 @@ function onForward( zit,
|
||||
# compute epsilonRec
|
||||
epsilonRec[i1,i2,i3,i4] = (alpha[i1,i2,i3,i4] * epsilonRec[i1,i2,i3,i4]) +
|
||||
(zit[i1,i2,i3,i4] * !iszero(wOut[i1,i2,i3,i4]))
|
||||
|
||||
synapticActivityCounter[i1,i2,i3,i4] += zit[i1,i2,i3,i4] * !iszero(wOut[i1,i2,i3,i4])
|
||||
end
|
||||
end
|
||||
return nothing
|
||||
|
||||
Reference in New Issue
Block a user