clear marker
This commit is contained in:
15
src/type.jl
15
src/type.jl
@@ -23,7 +23,7 @@ Base.@kwdef mutable struct kfn_1 <: knowledgeFn
|
||||
learningStage::Union{AbstractArray, Nothing} = nothing # 0 inference, 1 start, 2 during, 3 end learning
|
||||
inputSize::Union{AbstractArray, Nothing} = nothing
|
||||
zit::Union{AbstractArray, Nothing} = nothing # 3D activation matrix
|
||||
zit_cumulative::Union{AbstractArray, Nothing} = nothing
|
||||
zitCumulative::Union{AbstractArray, Nothing} = nothing
|
||||
exInType::Union{AbstractArray, Nothing} = nothing
|
||||
modelError::Union{AbstractArray, Nothing} = nothing # store RSNN error
|
||||
outputError::Union{AbstractArray, Nothing} = nothing # store output neurons error
|
||||
@@ -185,7 +185,7 @@ function kfn_1(params::Dict; device=cpu)
|
||||
|
||||
# activation matrix
|
||||
kfn.zit = zeros(row, col, batch) |> device
|
||||
kfn.zit_cumulative = (similar(kfn.zit) .= 0)
|
||||
kfn.zitCumulative = (similar(kfn.zit) .= 0)
|
||||
kfn.modelError = zeros(1) |> device
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
@@ -237,7 +237,7 @@ function kfn_1(params::Dict; device=cpu)
|
||||
kfn.lif_neuronInactivityCounter = (similar(kfn.lif_wRec) .= 10000)
|
||||
kfn.lif_synapticInactivityCounter = Array(similar(kfn.lif_wRec) .= -9) # -9 for non-sub conn
|
||||
mask = Array((!iszero).(kfn.lif_wRec))
|
||||
GeneralUtils.replace_elements!(mask, 1, kfn.lif_synapticInactivityCounter, 10000)
|
||||
GeneralUtils.replace_elements!(mask, 1, kfn.lif_synapticInactivityCounter, 0) # initial value subscribed conn
|
||||
kfn.lif_synapticInactivityCounter = kfn.lif_synapticInactivityCounter |> device
|
||||
|
||||
kfn.lif_arrayProjection4d = (similar(kfn.lif_wRec) .= 1)
|
||||
@@ -296,7 +296,7 @@ function kfn_1(params::Dict; device=cpu)
|
||||
kfn.alif_neuronInactivityCounter = (similar(kfn.alif_wRec) .= 10000)
|
||||
kfn.alif_synapticInactivityCounter = Array(similar(kfn.alif_wRec) .= -9) # -9 for non-sub conn
|
||||
mask = Array((!iszero).(kfn.alif_wRec))
|
||||
GeneralUtils.replace_elements!(mask, 1, kfn.alif_synapticInactivityCounter, 10000)
|
||||
GeneralUtils.replace_elements!(mask, 1, kfn.alif_synapticInactivityCounter, 0) # initial value subscribed conn
|
||||
kfn.alif_synapticInactivityCounter = kfn.alif_synapticInactivityCounter |> device
|
||||
|
||||
kfn.alif_arrayProjection4d = (similar(kfn.alif_wRec) .= 1)
|
||||
@@ -333,7 +333,6 @@ function kfn_1(params::Dict; device=cpu)
|
||||
synapticConnection = Int(floor(subable * synapticConnectionPercent/100))
|
||||
for slice in eachslice(w, dims=3) # each slice is a neuron
|
||||
startInd = row*col - subable + 1 # e.g. 100(row*col) - 50(subable) = 50 -> startInd = 51
|
||||
|
||||
# pool must contain only lif, alif neurons
|
||||
pool = shuffle!([startInd:row*col...])[1:synapticConnection]
|
||||
for i in pool
|
||||
@@ -342,9 +341,9 @@ function kfn_1(params::Dict; device=cpu)
|
||||
end
|
||||
end
|
||||
|
||||
# # 10% of neuron connection should be enough to start to make neuron fires
|
||||
# should_be_avg_weight = 1 / (0.2 * n)
|
||||
# w = w .* (should_be_avg_weight / maximum(w)) # adjust overall weight
|
||||
# 10% of neuron connection should be enough to start to make neuron fires
|
||||
should_be_avg_weight = 1 / (0.1 * n)
|
||||
w = w .* (should_be_avg_weight / maximum(w)) # adjust overall weight
|
||||
|
||||
# project 3D w into 4D kfn.lif_wOut (row, col, n, batch)
|
||||
kfn.on_wOut = reshape(w, (row, col, n, 1)) .* ones(row, col, n, batch) |> device
|
||||
|
||||
Reference in New Issue
Block a user