Closed PikaPei closed 3 months ago
Thanks for the question. I would like to recommend reading the source code that we have provided.
For align post
, you can read the code of Expon
and DualExponV2
For align pre
, you can read other codes such like Alpha
- The case for using ProjAlignPostMg2 or ProjAlignPreMg2. I get their difference from the figures, which is the synaptic variables aligning to either pre or post. But I don't know when to use which model?
Both models can be used anywhere. The difference is that align pre
can apply to any synapse, while align post
is only applicable to Exponential-family synapses.
- The case for using EventCSRLinear. I also found CSRLinear in the documentation. I guess, in spiking network, we should use EventCSRLinear because it is event-driven. Am I getting it wrong?
Not exactly. For FullProjAlignPreSDMg
whose computation flow following pre
-> syn
-> delay
-> comm
, the comm
should be CSRLinear
since the input is the output of syn
which is float-valued. While for FullProjAlignPostMg
whose computation flow following pre
-> delay
-> comm
, the comm
should be EventCSRLinear
since the output of pre
is the binary spikes.
- What does *.desc do? I saw https://brainpy.readthedocs.io/en/latest/apis/generated/brainpy.mixin.ParamDesc.html, but I don't understand what it does.
.desc
is the description of the model, rather than the actual initialization of the model.
- In addition to the questions above, something makes me most confused is which interface I should use. From the links I provided, I found there are methods like (1) bp.dyn.SynDyn, bp.mixin.AlignPost (2) bp.SynConn (3) I also found bp.TwoEndConn in the official book of BrainPy. Could you help me figure these out?
Using the interface I have linked above. Others are legacy APIs which should be abounded in future.
Thanks for helping me figure these out. I will try to read the source codes and documentation of synaptic projections. They are very helpful!
Hello!
I would like to customize a synapse model. I have read:
However, I feel confused about these interfaces. In most cases, I think building a synapse can be done with
bp.Projection
. Here are the questions I have:The case for using
ProjAlignPostMg2
orProjAlignPreMg2
. I get their difference from the figures, which is the synaptic variables aligning to either pre or post. But I don't know when to use which model?The case for using
EventCSRLinear
. I also foundCSRLinear
in the documentation. I guess, in spiking network, we should useEventCSRLinear
because it is event-driven. Am I getting it wrong?What does
*.desc
do? I saw https://brainpy.readthedocs.io/en/latest/apis/generated/brainpy.mixin.ParamDesc.html, but I don't understand what it does.In addition to the questions above, something makes me most confused is which interface I should use. From the links I provided, I found there are methods like (1)
bp.dyn.SynDyn, bp.mixin.AlignPost
(2)bp.SynConn
(3) I also foundbp.TwoEndConn
in the official book of BrainPy. Could you help me figure these out?I would be grateful if you could share any relevant documentation that I might have missed. Thank you!