-
Notifications
You must be signed in to change notification settings - Fork 358
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
Fix issue #82: parrot neuron now emits multiple spikes via spike multiplicity instead of a loop #146
Merged
jougs
merged 5 commits into
nest:master
from
flinz:issue-parrot_neuron-multiplicity-squashed
Nov 5, 2015
Merged
Fix issue #82: parrot neuron now emits multiple spikes via spike multiplicity instead of a loop #146
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
a5b3832
Squashed commit of the following:
flinz 87eb6b7
Revised documentation of parrot_neuron and added one more test.
heplesser 7f8f8f5
Merge pull request #1 from heplesser/issue-parrot_neuron-multiplicity…
flinz fc48425
Spike_times are now set with multiplicity. Author changes in docstring.
flinz a8a6361
Merge branch 'master' into issue-parrot_neuron-multiplicity-squashed
flinz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -27,26 +27,18 @@ Name: parrot_neuron - Neuron that repeats incoming spikes. | |
Description: | ||
|
||
The parrot neuron simply emits one spike for every incoming spike. | ||
One possible application for this is to create different channels | ||
for the output of generator devices such as the poisson_generator | ||
or the mip_generator. | ||
An important application is to provide identical poisson spike | ||
trains to a group of neurons. The poisson_generator sends a different | ||
spike train to each of its target neurons. By connecting one | ||
poisson_generator to a parrot_neuron and then that parrot_neuron to | ||
a group of neurons, all target neurons will receive the same poisson | ||
spike train. | ||
|
||
Remarks: | ||
|
||
Network-wise the parrot neuron behaves like other neuron models | ||
regarding connections and communication. While the number of | ||
outgoing spikes equals that of incoming ones, the weigth of the | ||
outgoing spikes solely depends on the weigth of outgoing connections. | ||
|
||
A Poisson generator that would send multiple spikes during a single | ||
time step due to a high rate will send single spikes with | ||
multiple synaptic strength instead, for effiacy reasons. | ||
This can be realized because of the way devices are implemented | ||
in the threaded environment. A parrot neuron on the other | ||
hand always emits single spikes. Hence, in a situation where for | ||
example a poisson generator with a high firing rate is connected | ||
to a parrot neuron, the communication cost associated with outgoing | ||
spikes is much bigger for the latter. | ||
- Weights on connection to the parrot_neuron are ignored. | ||
- Weights on connections from the parrot_neuron are handled as usual. | ||
- Delays are honored on incoming and outgoing connections. | ||
|
||
Only spikes arriving on connections to port 0 will be repeated. | ||
Connections onto port 1 will be accepted, but spikes incoming | ||
|
@@ -60,22 +52,19 @@ Receives: SpikeEvent | |
Sends: SpikeEvent | ||
|
||
Parameters: | ||
|
||
No parameters to be set in the status dictionary. | ||
|
||
References: | ||
No references | ||
|
||
Author: May 2006, Reichert, Morrison | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should now be
|
||
*/ | ||
|
||
|
||
/** | ||
* The parrot neuron emits one spike for every incoming spike. | ||
* It is a (strongly) simplified version of the iaf_neuron class, | ||
* stripped of the dynamics and unneeded features. | ||
* Instead of the accumulated weigths of the incoming spikes the | ||
* The parrot neuron emits one spike for every incoming spike, | ||
* but may use multiplicity to indicate number of spikes in a single | ||
* time step. | ||
* Instead of the accumulated weigths of the incoming spikes, the | ||
* number of the spikes is stored within a ring buffer. | ||
* | ||
* \author David Reichert | ||
* \date may 2006 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please remove the date and author lines here. |
||
*/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
I need to double-check whether
set_spiketime()
needs to be called once per outgoing spike, i.e., as many times as multiplicity indicates.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.
#77 (comment) seems to suggest that this is indeed the case.
this would result in
with which we're almost back to the old form -- although it's a little cleaner with the handling of multiplicity.
It should be noted that the original model did not set the spike_times multiply -- but the parrot probably wasn't used for plasticity much yet.
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.
I agree that you need this. Can you please add this change?
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.
@flinz I agree with @jougs and after more meditation over the spike archiving and plasticity (see #77) think that we do have to call
set_spiketime()
once for every spike. One this PR is merged, I will extendset_spiketime()
to accept multiplicity as argument in a separate PR, but I don't want to delay this PR further.