Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
c731160
Skeleton implementation with updated data structures
oliverrhodes Sep 19, 2019
8d6f485
update to skeleton implementation
Sep 19, 2019
e04b1c4
Add eprop_adaptive synapse type
oliverrhodes Sep 19, 2019
c0911e3
added regularisation functionality
Sep 26, 2019
65cde93
Added adaptive neuron
Sep 26, 2019
b095d6e
Adaptive threshold working
oliverrhodes Sep 26, 2019
c813aff
make regularisation target rates scalable with neurons per core
Sep 27, 2019
3e63017
beginnings of store recall readout neuron, still broken and needs act…
adamperrett Oct 2, 2019
a7ee9d6
most of the structure of the store recall task is in place just waiti…
adamperrett Oct 3, 2019
6dd206e
no longer broadcasting error with inhib and excite but as a packet
adamperrett Oct 4, 2019
c73a232
c code compiles, packets transmitted to poisson spike source, include…
adamperrett Oct 7, 2019
532a6da
add signed weights functionality
Oct 8, 2019
1ae007e
Update to allow correct reading of weights (static)
oliverrhodes Oct 8, 2019
f8a2309
Add learning signal param and skeleton synapse state updates
oliverrhodes Oct 18, 2019
54f7155
add note to replace saturation check
oliverrhodes Oct 21, 2019
18445eb
Merge branch 'eprop_adaptive' of https://github.com/SpiNNakerManchest…
oliverrhodes Oct 21, 2019
04a6736
Put threshold in neuron model for easier access during synaptic state
oliverrhodes Nov 15, 2019
36adad1
check test scripts still run correctly
oliverrhodes Nov 15, 2019
f7cc1a3
Remove delays from spike processing, and use field to index synapse
oliverrhodes Nov 26, 2019
b61026a
Skeleton sinusoid readout neuron
oliverrhodes Nov 26, 2019
f55810e
skeleton sinusoid readout neuron
oliverrhodes Nov 27, 2019
dfa0a55
sinusoid readout implemented
oliverrhodes Nov 27, 2019
d448e65
Learning signal by payload
oliverrhodes Nov 28, 2019
8521b6e
Add complete synaptic state updates
oliverrhodes Nov 28, 2019
387f1d3
begin sketching out weight update scheme
oliverrhodes Nov 28, 2019
a86232f
Change arithmetic to fit with prototype implementation of weight change
oliverrhodes Nov 29, 2019
76c811a
fix error by payload test example
oliverrhodes Jan 22, 2020
0abc0bc
Convert to delta synapses and add test
oliverrhodes Jan 24, 2020
0efa07d
folded in eprop learning to sinusoid readout neuron, altered make fil…
adamperrett Mar 2, 2020
18a7ebb
Add plastic weight update
oliverrhodes Mar 2, 2020
7ddeadf
Add regularisation functionality
oliverrhodes Mar 3, 2020
76948ef
Merge pull request #794 from SpiNNakerManchester/implement_eprop_plas…
oliverrhodes Mar 3, 2020
f2b9e61
merged in new plasticity stuff, make files for the new plasticity on …
adamperrett Mar 3, 2020
a07ee44
learning now in sinusoid, weight is shifted to make more sense, print…
adamperrett Mar 4, 2020
2b38adc
Updated sinusoid learning and print management
adamperrett Mar 10, 2020
12cae24
Merge pull request #801 from SpiNNakerManchester/eprop_adam_tive
sara-es Mar 10, 2020
23a926f
delays now passed correctly, changes to prints
adamperrett Mar 11, 2020
b325dfe
fix to allow extraction of signed weights, removed timing dependence …
adamperrett Mar 13, 2020
5e9da36
updates to reg firing, rest committed in case home
adamperrett Mar 13, 2020
fdc7cdf
Fixed neurons per core, updated regularisation
adamperrett Mar 17, 2020
6a8295e
removed an annoying print
adamperrett Mar 17, 2020
c57e81a
more synapses per eprop neuron, regularised to within a boundary
adamperrett Mar 19, 2020
1f60cd7
reduced error margin
adamperrett Mar 19, 2020
1b4bc1f
Add comments to n_neurons parameter in neuron implementation
oliverrhodes Mar 23, 2020
e37842c
Be careful setting the size of the e-prop synapse array
oliverrhodes Mar 23, 2020
84237f1
warning about having same parameter but different name, also this needs
oliverrhodes Mar 23, 2020
6c08926
Merge pull request #804 from SpiNNakerManchester/eprop_being_adapted
oliverrhodes Mar 23, 2020
aaf2e56
Fix pause-and-resume for eprop neuron model
andrewgait Apr 6, 2020
c46b527
change log_info's to log_debug
andrewgait Apr 7, 2020
74b38e7
Add comment for compiler fix: += => -=
oliverrhodes Apr 8, 2020
29aa11b
updated total_synapses_per_neuron comment
oliverrhodes Apr 8, 2020
98810a4
Merge pull request #815 from SpiNNakerManchester/eprop_pause_and_resume
oliverrhodes Apr 8, 2020
4caf284
Small changes to regularisation, merged with new branch, left right t…
adamperrett Apr 24, 2020
03f1ad2
Basic version of left right, not currently working
adamperrett Apr 24, 2020
5220c26
Poisson key collected and given to model, runs but poisson not updati…
adamperrett Apr 29, 2020
0c72023
Poisson rates updated properly, operation not ok
adamperrett Apr 30, 2020
67a4802
different recording, rho changed but not calculated on the fly, rates…
adamperrett May 20, 2020
c70c68b
rho correctly calculated for each neuron and used
adamperrett May 21, 2020
08e877f
Add functionality to apply weight updates after an elapsed period of
oliverrhodes May 26, 2020
5023019
updates to firing reg making it averaged over time, updates are stagg…
adamperrett May 28, 2020
731af5d
changes to recording, left right always alternated, reg error not inc…
adamperrett Jun 1, 2020
f21b6c9
Merge pull request #828 from SpiNNakerManchester/eprop_adaptive_delay…
oliverrhodes Jun 2, 2020
70ee0be
Merge remote-tracking branch 'origin/eprop_adaptive' into eprop_left_…
oliverrhodes Jun 2, 2020
d153fc2
Merge pull request #827 from SpiNNakerManchester/eprop_left_right
oliverrhodes Jun 2, 2020
2f256b9
removed abs and switched to accum to be sure
adamperrett Jun 2, 2020
ae86f7b
hot fix
adamperrett Jun 2, 2020
5a11a6a
reset the synapse params between tests, window size a single variable…
adamperrett Jun 2, 2020
4faf879
added voltage regularisation, neuron/synapse dynamics reset between r…
adamperrett Jun 9, 2020
dd2a207
window size is variable, reset now includes membrane and refract timer
adamperrett Jun 11, 2020
9cf2d98
saturation check and fix added, removed reg for testing, update ready…
adamperrett Jun 17, 2020
f690e7a
update to learning signal calculation
adamperrett Jun 26, 2020
c4c0892
exp un-scaled, reset works if spike received at t=0, io_prints remove…
adamperrett Jul 16, 2020
ec335d0
remove some print statements
andrewgait Jul 22, 2020
da6d0f3
number of cues now an input variable for incremental learning
adamperrett Sep 25, 2020
1b7a510
added #of cues to default init values
adamperrett Sep 25, 2020
8f220ae
vmem used in learning
adamperrett Sep 29, 2020
071baca
number of cues added to eprop for membrane resetting, changes to reco…
adamperrett Sep 29, 2020
8ddf983
moved test_length
adamperrett Sep 29, 2020
01abcad
random cue turned back on
adamperrett Oct 2, 2020
01d0688
Update_ready fully added to sinusoid
adamperrett Oct 12, 2020
c77ce84
change recording
adamperrett Oct 12, 2020
f1c035b
change recording
adamperrett Oct 12, 2020
b1301ac
change recording
adamperrett Oct 12, 2020
e731731
removed decay pon zbar
adamperrett Oct 12, 2020
3870823
updated weight update issue with - +=
adamperrett Oct 12, 2020
89a9260
changed recording
adamperrett Oct 12, 2020
6c5481e
removed reset if not left right task
adamperrett Oct 12, 2020
b7b65c7
default number of cues = 0
adamperrett Oct 12, 2020
4d56da3
return of the rate reg
adamperrett Oct 12, 2020
81b79ae
return of the rate reg
adamperrett Oct 12, 2020
7f41581
return of the rate reg
adamperrett Oct 12, 2020
ea7420c
return of the rate reg
adamperrett Oct 12, 2020
14791a3
removed printing for small windows and long runs
adamperrett Oct 13, 2020
b86ae0d
Merge branch 'eprop_adaptive' into eprop_incremental_graph
andrewgait Oct 22, 2020
bafd5d0
Delete unneeded file
andrewgait Oct 22, 2020
be20e45
Merge pull request #896 from SpiNNakerManchester/eprop_incremental_graph
andrewgait Oct 22, 2020
4fa3634
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
andrewgait Mar 24, 2023
f5e9a0f
Rho is calculated already during initialise so no need to do this
andrewgait Mar 27, 2023
d46c4af
Fix merge to make basic eprop (and STDP) work
andrewgait Apr 3, 2023
af37a9e
Merge branch 'eprop_adaptive_update' of https://github.com/SpiNNakerM…
andrewgait Apr 3, 2023
5a17f83
Get sinusoid readout neuron working; fix STDP?
andrewgait Apr 14, 2023
b82a0cd
Get rid of debug prints for now
andrewgait Apr 14, 2023
f4618ab
Do STDP initialise correctly here as well
andrewgait Apr 17, 2023
cee70f1
Make work for delays and add use_key to sinusoid readout
andrewgait Apr 24, 2023
aa937db
Update left-right task to where it now seems to work
andrewgait May 4, 2023
af35d2c
Add comment and fix broken loop
andrewgait May 4, 2023
afe47db
Tidying up for earlier compiler versions to fit in ITCM
andrewgait May 5, 2023
3e6da01
Switch this calculation back for now as kdivui doesn't seem to work
andrewgait May 5, 2023
07e09f5
More comments on dividing negative values
andrewgait May 5, 2023
3f14ee2
Tidying up (working?) C code
andrewgait May 9, 2023
29f4c46
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
andrewgait May 9, 2023
48fd0cc
Fixes for incremental_learning script and tidying up
andrewgait May 25, 2023
888e3d6
Turn non-eprop models back on again
andrewgait May 26, 2023
8f6f9a1
Tidy up code, vera line lengths, delete unused model
andrewgait May 26, 2023
42eabce
vera line length
andrewgait May 26, 2023
fc149df
Try using ubuntu 22 (to update compiler version)
andrewgait May 26, 2023
2987d20
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
andrewgait Jun 6, 2023
c15512d
Reduce ITCM further
andrewgait Jun 6, 2023
5de2d6d
Don't build eprop binaries in debug mode
andrewgait Jun 6, 2023
80cd906
Not using StoreRecallReadout any more
andrewgait Jun 7, 2023
8143e7c
Update is_same_as in eprop stdp
andrewgait Jun 7, 2023
2ce486a
Flake8 and general tidying up
andrewgait Jun 8, 2023
7e18daf
Flake8 / rename ambiguous parameter
andrewgait Jun 8, 2023
3910aff
more flake8
andrewgait Jun 8, 2023
55e56a5
pylint: match to slots properly
andrewgait Jun 8, 2023
699148f
missed one
andrewgait Jun 8, 2023
f8bd3a3
pylint unused variables, access
andrewgait Jun 8, 2023
40e235a
Update licenses and rename file to match other naming
andrewgait Jun 8, 2023
a1e1fac
Put include files in the correct order
andrewgait Jun 8, 2023
39d1ce4
set default for target_data
andrewgait Jun 8, 2023
966fedb
rename setter to correct name
andrewgait Jun 16, 2023
1f2e808
Add use_eprop to pass correct value into synapses
andrewgait Jul 6, 2023
a2ce977
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
andrewgait Jul 6, 2023
d12e14b
Merge remote-tracking branch 'origin/master' into eprop_adaptive_update
andrewgait Aug 8, 2023
40383ef
DataType has moved
andrewgait Aug 8, 2023
0397647
flake8 missing line
andrewgait Aug 8, 2023
c9be8b3
pylint spelling
andrewgait Aug 8, 2023
bfdee44
pylint property
andrewgait Aug 8, 2023
e7375d9
overrides goes last
andrewgait Aug 8, 2023
a87b9ca
Merge branch 'master' into eprop_adaptive_update
andrewgait Sep 20, 2023
fa3478a
Merge branch 'master' into eprop_adaptive_update
andrewgait Sep 25, 2023
012194f
Use the correct structure for the data on the branch
andrewgait Sep 28, 2023
c8011ca
Merge branch 'master' into eprop_adaptive_update
andrewgait Sep 29, 2023
4cde343
Merge branch 'master' into eprop_adaptive_update
rowleya Oct 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion neural_modelling/makefiles/neuron/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,12 @@ ifneq ($(SPYNNAKER_DEBUG), DEBUG)
IF_curr_delta_stdp_mad_pair_additive \
IF_curr_delta_stdp_mad_nearest_pair_additive \
IF_curr_exp_stdp_mad_recurrent_pre_stochastic_multiplicative \
IF_curr_exp_stdp_mad_pfister_triplet_additive
IF_curr_exp_stdp_mad_pfister_triplet_additive \
eprop_adaptive \
eprop_adaptive_stdp_mad_eprop_reg \
sinusoid_readout \
sinusoid_readout_stdp_mad_eprop_reg \
left_right_readout_stdp_mad_eprop_reg
endif

all:
Expand Down
20 changes: 20 additions & 0 deletions neural_modelling/makefiles/neuron/eprop_adaptive/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright (c) 2019 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

APP = $(notdir $(CURDIR))

NEURON_IMPL_H = $(NEURON_DIR)/neuron/implementations/neuron_impl_eprop_adaptive.h
SYNAPSE_DYNAMICS = $(NEURON_DIR)/neuron/plasticity/synapse_dynamics_static_impl.c

include ../neural_build.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright (c) 2019 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

APP = $(notdir $(CURDIR))

NEURON_IMPL_H = $(NEURON_DIR)/neuron/implementations/neuron_impl_eprop_adaptive.h
SYNAPSE_DYNAMICS = $(NEURON_DIR)/neuron/plasticity/stdp/synapse_dynamics_eprop_adaptive_impl.c
TIMING_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.c
TIMING_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.h
WEIGHT_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.c
WEIGHT_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.h

include ../neural_build.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright (c) 2019 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

APP = $(notdir $(CURDIR))

NEURON_IMPL_H = $(NEURON_DIR)/neuron/implementations/neuron_impl_left_right_readout.h
SYNAPSE_DYNAMICS = $(NEURON_DIR)/neuron/plasticity/stdp/synapse_dynamics_left_right_readout_impl.c
TIMING_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.c
TIMING_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.h
WEIGHT_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.c
WEIGHT_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.h

include ../neural_build.mk
20 changes: 20 additions & 0 deletions neural_modelling/makefiles/neuron/sinusoid_readout/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright (c) 2019 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

APP = $(notdir $(CURDIR))

NEURON_IMPL_H = $(NEURON_DIR)/neuron/implementations/neuron_impl_sinusoid_readout.h
SYNAPSE_DYNAMICS = $(NEURON_DIR)/neuron/plasticity/synapse_dynamics_static_impl.c

include ../neural_build.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright (c) 2019 The University of Manchester
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

APP = $(notdir $(CURDIR))

NEURON_IMPL_H = $(NEURON_DIR)/neuron/implementations/neuron_impl_sinusoid_readout.h
SYNAPSE_DYNAMICS = $(NEURON_DIR)/neuron/plasticity/stdp/synapse_dynamics_sinusoid_readout_impl.c
TIMING_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.c
TIMING_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/timing_dependence/timing_eprop_impl.h
WEIGHT_DEPENDENCE = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.c
WEIGHT_DEPENDENCE_H = $(NEURON_DIR)/neuron/plasticity/stdp/weight_dependence/weight_eprop_reg_impl.h

include ../neural_build.mk
2 changes: 2 additions & 0 deletions neural_modelling/src/neuron/c_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ void resume_callback(void) {
static inline void process_ring_buffers(void) {
uint32_t first_index = synapse_row_get_first_ring_buffer_index(
time, synapse_type_index_bits, synapse_delay_mask);
// log_info("process_ring_buffers, synapse_delay_mask is %u first_index %u ring_buffer %d",
// synapse_delay_mask, first_index, ring_buffers[first_index]);
neuron_transfer(&ring_buffers[first_index]);

// Print the neuron inputs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ static bool current_source_load_parameters(address_t cs_address) {
// Avoid the loops if no current sources
#if !defined(_CURRENT_SOURCE_DC_H_) && !defined(_CURRENT_SOURCE_AC_H) && \
!defined(_CURRENT_SOURCE_STEP_H_) && !defined(_CURRENT_SOURCE_NOISY_H_)
io_printf(IO_BUF, "no current sources defined \n");
// io_printf(IO_BUF, "no current sources defined \n");
return true;
#else

Expand Down
Loading