-
Notifications
You must be signed in to change notification settings - Fork 12
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
Input synapses are currently ignored #63
Comments
So I think #45 addresses this issue. My problem there right now is that if a synapse is not set (i.e. Thoughts about what to do in this situation? Some options are:
|
It turns out, having no filter on spiking node inputs is not actually that bad, since these have high firing rates (whereas for ensemble->ensemble interneurons, where we have 10 neurons firing at 100 Hz each, filtering is more necessary). Removing the synapse only caused a slight change in test_node_ens_ens. In #45, I've redone test_node_ens_ens with a lower-frequency input signal, and the output appears close to the target with or without filtering on the input node. This doesn't mean that option 2 or 3 isn't still the best solution. It just means that option 1 is more viable than I had originally thought. |
Hmm... my inclination is to not introduce new synapses that the user isn't expecting. I could see that being more confusing than it's worth. So I'd say we stick with option 1 for now (i.e. if the user specifies synapse=None for a Node->Ensemble Connection, then we leave it with synapse=None) |
I'm fine with that. Though my argument for option 1 would be that it gives users the most control. We're already introducing stuff that they might not expect (i.e., neurons that turn the node values into spikes), so introducing something else to help make this work more like Nengo doesn't seem too insidious to me. |
Fixed by #45. |
Does #45 explicitly test this? I was looking at it and some tests are modified, but there are no specific tests added for it. The OP in this issue includes a test, so we should add it to the test suite before closing this issue. |
Test added in #250, which wraps this up. |
This came up while writing tests for #26 . That PR changes how inputs are handled when precompute=False, so I wanted to test that the signals are being passed and filtered correctly. It turns out that it looks like the synapse on an input Connection (i.e. one that goes from a Node to an Ensemble) is currently being ignored. Here's the test:
Here is the result (for both precompute=True and precompute=False):
If I modify the test such that reference nengo ignores the input synapse by setting
c.synapse=None
, then we get thisThe synapse is being set on the Connection that's being passed to the builder ( https://github.com/nengo/nengo-loihi/blob/master/nengo_loihi/splitter.py#L181 ), but I'm not sure how that ends up being used.
This affects both the emulator (target='sim') and the chip itself (target='loihi')
Note that we could resolve this either by introducing the synapse on loihi, or we could do the synapse on the host side by setting the synapse here https://github.com/nengo/nengo-loihi/blob/master/nengo_loihi/splitter.py#L207 instead of here https://github.com/nengo/nengo-loihi/blob/master/nengo_loihi/splitter.py#L181. I believe the intent was to have this synapse on the chip, but there may be reasons not to do that.
The text was updated successfully, but these errors were encountered: