building forwared()
This commit is contained in:
@@ -2,10 +2,68 @@ module forward
|
||||
|
||||
# export
|
||||
|
||||
# using
|
||||
using GeneralUtils
|
||||
using ..type, ..snnUtil
|
||||
|
||||
#------------------------------------------------------------------------------------------------100
|
||||
|
||||
# kfn forward
|
||||
function (kfn::kfn_1)(input::AbstractArray)
|
||||
kfn.timeStep .+= 1
|
||||
|
||||
#TODO time step forward
|
||||
if kfn.learningStage == [1]
|
||||
# reset learning params
|
||||
end
|
||||
|
||||
println(">>> input ", size(input))
|
||||
println(">>> z_i_t1 ", size(kfn.z_i_t1))
|
||||
|
||||
# pass input_data into input neuron.
|
||||
GeneralUtils.cartesianAssign!(kfn.z_i_t1, input)
|
||||
println(">>> z_i_t1 ", size(kfn.z_i_t1))
|
||||
println(">>> lif_recSignal ", size(kfn.lif_recSignal))
|
||||
println(">>> lif_w ", size(kfn.lif_w))
|
||||
println(">>> lif_refractoryActive ", size(kfn.lif_refractoryActive))
|
||||
println(">>> lif_alpha ", size(kfn.lif_alpha))
|
||||
println(">>> lif_vt0 ", size(kfn.lif_vt0))
|
||||
println(">>> lif_vt0 sum ", sum(kfn.lif_vt0))
|
||||
|
||||
# check active/inactive neurons
|
||||
refractoryStatus!(kfn.lif_refractoryCounter, kfn.lif_refractoryActive, kfn.lif_refractoryInactive)
|
||||
refractoryStatus!(kfn.alif_refractoryCounter, kfn.alif_refractoryActive, kfn.alif_refractoryInactive)
|
||||
|
||||
# LIF forward active neurons
|
||||
kfn.lif_recSignal .= GeneralUtils.sumAlongDim3(
|
||||
GeneralUtils.matMul_3Dto4D_batchwise(kfn.z_i_t1, kfn.lif_refractoryActive .* kfn.lif_w))
|
||||
kfn.lif_vt1 = (kfn.lif_alpha .* kfn.lif_vt0) .+ kfn.lif_recSignal
|
||||
# for (i, v) in enumerate(kfn.lif_vt1)
|
||||
# if v <
|
||||
# LIF forward inactive neurons
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# GeneralUtils.batchMatEleMul(kfn.z_i_t1, kfn.alif_w, resultStorage=kfn.alif_recSignal)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
error("debug end kfn forward")
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user