-
Notifications
You must be signed in to change notification settings - Fork 370
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement e-prop plasticity #2867
Conversation
@akorgor @JesusEV @jstapmanns FYI Here is the build output of the documentation from Read the docs for the PR. I've also created a PR against the eprop_feature branch in jstapmanns fork. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks just a few minor typos and formatting
pynest/examples/eprop_plasticity/eprop_supervised_regression.py
Outdated
Show resolved
Hide resolved
pynest/examples/eprop_plasticity/eprop_supervised_regression.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this PR! @akorgor, @JesusEV and @heplesser reviewed most of this code today, except the new neuron models. It looks already pretty good, some cleanup to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Processed part of the requested changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks really good, just have a few minor changes :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all your work on this; still have a one typo but I will approve
Small hint: You can type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a preliminary review of the files surrounding the actual neuron and synapse models. I will get back to those soon, but want to provide some feedback already now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akorgor @JesusEV I have now reviewed everything in nestkernel
, with a number of suggestions for further improving EpropArchivingNode
. I will work on the material in models
tomorrow. Some of my comments are just in a single place, but apply generally.
One more general aspect: You use long
throughout, but I think in almost all places you could never have negative values. Our practice now is to use size_t
in those cases.
Co-authored-by: JesusEV <[email protected]>
Co-authored-by: JesusEV <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
Co-authored-by: Hans Ekkehard Plesser <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akorgor All reviewers have approved now, but the pylint test fails because Github recently started using a newer pylint version. We just merged a fix for this into master, so if you could merge master into your branch once more, this PR should be ready to be merged :). |
This PR ports the eligibility propagation (e-prop) plasticity mechanism in supervised tasks published by Bellec et al. (2020) from TensorFlow to NEST.
The PR includes:
eprop_iaf_psc_delta
,eprop_iaf_psc_delta_adapt
, andeprop_readout
eprop_synapse
eprop_learning_signal_connection
eprop_archiving_node
to archive the history of variables required for computing the weight updatetest_eprop_plasticity.py
eprop_supervised_regression.py
andeprop_supervised_classification.py
A manuscript on the details of this implementation, Korcsak-Gorzo, Stapmanns, and Espinoza Valverde et al., is in preparation.
Bellec, G., Scherr, F., Subramoney, A., Hajek, E., Salaj, D., Legenstein, R., & Maass, W. (2020). A solution to the learning dilemma for recurrent networks of spiking neurons. Nature communications, 11(1), 3625.
Korcsak-Gorzo A, Stapmanns J, Espinoza Valverde JA, Dahmen D, van Albada SJ, Bolten M, Diesmann M. Event-based implementation of eligibility propagation (in preparation)
Co-authored-by: Jonas Stapmanns [email protected]
Co-authored-by: JesusEV [email protected]