Skip to content

Commit

Permalink
all building and tests passing
Browse files Browse the repository at this point in the history
  • Loading branch information
rcoreilly committed Jan 6, 2025
1 parent 9b24d8f commit 9a5a118
Show file tree
Hide file tree
Showing 74 changed files with 425 additions and 419 deletions.
10 changes: 5 additions & 5 deletions axon/act-layer.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions axon/act-layer.goal
Original file line number Diff line number Diff line change
Expand Up @@ -539,9 +539,9 @@ func (ly *LayerParams) SpikeFromG(ctx *Context, lpi, ni, di uint32) {
Neurons[ni, di, CaPMax] = spkmax
}
}
mx := NetworkIxs[0].NSpikeBins
bin := min(ctx.Cycle / ctx.SpikeBinCycles, mx)
Neurons[ni, di, SpikeBins + NeuronVars(bin)] += Neurons[ni, di, CaSyn] / float32(ctx.SpikeBinCycles)
mx := NetworkIxs[0].NCaBins
bin := min(ctx.Cycle / ctx.CaBinCycles, mx)
Neurons[ni, di, CaBins + NeuronVars(bin)] += Neurons[ni, di, CaSyn] / float32(ctx.CaBinCycles)
}

// SendSpike sends spike to receivers for all neurons that spiked
Expand Down Expand Up @@ -933,9 +933,9 @@ func (ly *LayerParams) NewStateNeuron(ctx *Context, ni, di uint32) {
ly.Acts.DecayState(ctx, ni, di, ly.Acts.Decay.Act, ly.Acts.Decay.Glong, ly.Acts.Decay.AHP)
// Note: synapse-level Ca decay happens in DWt
ly.Acts.KNaNewState(ctx, ni, di)
mx := NetworkIxs[0].NSpikeBins
mx := NetworkIxs[0].NCaBins
for i := range mx {
Neurons[ni, di, SpikeBins+NeuronVars(i)] = 0.0
Neurons[ni, di, CaBins+NeuronVars(i)] = 0.0
}
}

Expand Down
4 changes: 2 additions & 2 deletions axon/act.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions axon/act.goal
Original file line number Diff line number Diff line change
Expand Up @@ -1034,9 +1034,9 @@ func (ac *ActParams) InitActs(ctx *Context, ni, di uint32) {
Neurons[ni, di, CtxtGeRaw] = 0
Neurons[ni, di, CtxtGeOrig] = 0

mx := NetworkIxs[0].NSpikeBins
mx := NetworkIxs[0].NCaBins
for i := range mx {
Neurons[ni, di, SpikeBins+NeuronVars(i)] = 0.0
Neurons[ni, di, CaBins+NeuronVars(i)] = 0.0
}

ac.InitLongActs(ctx, ni, di)
Expand Down
38 changes: 19 additions & 19 deletions axon/basic_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

38 changes: 19 additions & 19 deletions axon/basic_test.goal
Original file line number Diff line number Diff line change
Expand Up @@ -852,18 +852,18 @@ func NetTestLearn(t *testing.T, tol float32, gpu bool) {
// if there are differences, they will multiply over patterns and layers..
qtr3HidCaP := []float32{0.5485551, 0.5397998, 0.5360895, 0.54144794}
qtr3HidCaD := []float32{0.5214811, 0.4950928, 0.49920246, 0.5030252}
qtr3OutCaP := []float32{0.58150774, 0.56721854, 0.5771712, 0.57196385}
qtr3OutCaD := []float32{0.5047788, 0.46398282, 0.4783627, 0.47417185}
qtr3OutCaP := []float32{0.58150774, 0.567215, 0.5771712, 0.57196385}
qtr3OutCaD := []float32{0.5047788, 0.4639749, 0.47836265, 0.47417185}

q3hidCaP := make([]float32, 4*nLearnParams)
q3hidCaD := make([]float32, 4*nLearnParams)
q3outCaP := make([]float32, 4*nLearnParams)
q3outCaD := make([]float32, 4*nLearnParams)

hidDwts := []float32{0.0034167361, 0.0049937717, 0.00403544, 0.004449356}
outDwts := []float32{0.0009000063, 0.005000009, 0.0022999954, 0.0025999974}
hidWts := []float32{0.52048916, 0.52992797, 0.5241945, 0.5266715}
outWts := []float32{0.5053999, 0.52996504, 0.51379675, 0.51559514}
hidDwts := []float32{0.0041238065, 0.006036989, 0.005049901, 0.0053225732}
outDwts := []float32{0.01540925, 0.021186322, 0.02152678, 0.021516494}
hidWts := []float32{0.5247232, 0.5361605, 0.53026325, 0.5318933}
outWts := []float32{0.59144425, 0.62451977, 0.62643707, 0.6263793}

hiddwt := make([]float32, 4*nLearnParams)
outdwt := make([]float32, 4*nLearnParams)
Expand Down Expand Up @@ -1003,18 +1003,18 @@ func NetTestRLRate(t *testing.T, tol float32, gpu bool) {

qtr3HidCaP := []float32{0.5485551, 0.5397998, 0.5360895, 0.54144794}
qtr3HidCaD := []float32{0.5214811, 0.4950928, 0.49920246, 0.5030252}
qtr3OutCaP := []float32{0.58150774, 0.56721854, 0.5771712, 0.57196385}
qtr3OutCaD := []float32{0.5047788, 0.46398282, 0.4783627, 0.47417185}
qtr3OutCaP := []float32{0.58150774, 0.567215, 0.5771712, 0.57196385}
qtr3OutCaD := []float32{0.5047788, 0.4639749, 0.47836265, 0.47417185}

q3hidCaP := make([]float32, 4*nLearnParams)
q3hidCaD := make([]float32, 4*nLearnParams)
q3outCaP := make([]float32, 4*nLearnParams)
q3outCaD := make([]float32, 4*nLearnParams)

hidDwts := []float32{1.708368e-07, 1.486611e-05, 2.0177201e-07, 1.1150851e-05}
outDwts := []float32{0.0009000063, 0.005000009, 0.0022999954, 0.0025999974}
hidWts := []float32{0.5000011, 0.50008905, 0.5000011, 0.5000669}
outWts := []float32{0.5053999, 0.52996504, 0.51379675, 0.51559514}
hidDwts := []float32{2.0619032e-07, 1.7971695e-05, 2.5249506e-07, 1.3339283e-05}
outDwts := []float32{0.01540925, 0.021186322, 0.02152678, 0.021516494}
hidWts := []float32{0.5000011, 0.500108, 0.50000143, 0.5000801}
outWts := []float32{0.59144425, 0.62451977, 0.62643707, 0.6263793}

hiddwt := make([]float32, 4*nLearnParams)
outdwt := make([]float32, 4*nLearnParams)
Expand Down Expand Up @@ -1660,24 +1660,24 @@ func TestRubiconGiveUp(t *testing.T) {
// ni := uint32(0)
// di := uint32(0)
// for i := range 8 {
// Neurons[ni, di, SpikeBin0 + NeuronVars(i)] = float32(i)
// Neurons[ni, di, CaBin0 + NeuronVars(i)] = float32(i)
// }
// ly := &Layers[0]
// ly.Learn.GateSync.ShiftBins(1, minusBins, plusBins, ni, di)
// for i := range minusBins {
// // fmt.Println(i, Neurons[ni, di, SpikeBin0 + NeuronVars(i)])
// assert.Equal(t, float32(i+1), Neurons[ni, di, SpikeBin0 + NeuronVars(i)])
// // fmt.Println(i, Neurons[ni, di, CaBin0 + NeuronVars(i)])
// assert.Equal(t, float32(i+1), Neurons[ni, di, CaBin0 + NeuronVars(i)])
// }
// for i := range plusBins {
// assert.Equal(t, float32(0), Neurons[ni, di, SpikeBin0 + NeuronVars(minusBins+i)])
// assert.Equal(t, float32(0), Neurons[ni, di, CaBin0 + NeuronVars(minusBins+i)])
// }
// ly.Learn.GateSync.ShiftBins(-1, 6, 2, ni, di)
// for i := range minusBins {
// // fmt.Println(i, Neurons[ni, di, SpikeBin0 + NeuronVars(i)])
// assert.Equal(t, float32(max(i,1)), Neurons[ni, di, SpikeBin0 + NeuronVars(i)])
// // fmt.Println(i, Neurons[ni, di, CaBin0 + NeuronVars(i)])
// assert.Equal(t, float32(max(i,1)), Neurons[ni, di, CaBin0 + NeuronVars(i)])
// }
// for i := range plusBins {
// assert.Equal(t, float32(0), Neurons[ni, di, SpikeBin0 + NeuronVars(minusBins+i)])
// assert.Equal(t, float32(0), Neurons[ni, di, CaBin0 + NeuronVars(minusBins+i)])
// }
// }

Expand Down
14 changes: 7 additions & 7 deletions axon/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ type Context struct { //types:add -setters
// PlusCycles is the number of cycles in the plus phase.
PlusCycles int32

// SpikeBinCycles is the number of cycles per SpikeBin used in computing synaptic
// calcium values. Total number of bins = ThetaCycles / SpikeBinCycles.
SpikeBinCycles int32
// CaBinCycles is the number of cycles per CaBin used in computing synaptic
// calcium values. Total number of bins = ThetaCycles / CaBinCycles.
CaBinCycles int32

// CyclesTotal is the accumulated cycle count, which increments continuously
// from whenever it was last reset. Typically this is the number of milliseconds
Expand Down Expand Up @@ -100,7 +100,7 @@ func (ctx *Context) Defaults() {
ctx.TimePerCycle = 0.001
ctx.ThetaCycles = 200
ctx.PlusCycles = 50
ctx.SpikeBinCycles = 25
ctx.CaBinCycles = 25
ctx.SlowInterval = 100
}

Expand Down Expand Up @@ -141,9 +141,9 @@ func (ctx *Context) PlusPhaseStart() {
ctx.PlusPhase.SetBool(true)
}

// NSpikeBins returns ThetaCycles / SpikeBinCycles
func (ctx *Context) NSpikeBins() int32 {
return ctx.ThetaCycles / ctx.SpikeBinCycles
// NCaBins returns ThetaCycles / CaBinCycles
func (ctx *Context) NCaBins() int32 {
return ctx.ThetaCycles / ctx.CaBinCycles
}

//gosl:end
Expand Down
Loading

0 comments on commit 9a5a118

Please sign in to comment.