You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context - I'm working on smaller scale network models and comparing their network dynamics and potential for scaling. The current model we use has a wide selection of 9-param IZ groups, but some with significantly fewer neurons than another. I know that running smaller scale networks is faster on CPU, but often the networks may have one or two group with >1000 neurons, and one or two groups with <5 neurons, and it would be nice to not have to keep switching between the two.
Problem - Often times we are scaling to the point they may be only 1 neuron in a group, which may have a connection to another group with 1 neuron. While we test different connection probabilities, in this connection from a 1 neuron group to another 1 neuron group, it would often generate a connection with no synapses (based on the connection probability). This would throw a cuda memory error (since it would try and copy the non existent synaptic info)
Fix in my project - I think there are ways for me to avoid this in my work by just forcing probabilities to be 1 if there is a low enough number of neurons. BUT this is something that technically could always occur. For instance if there are 2 neurons in groups being connecting, a probability of 0.5 should work, but would fail 1/16 of the time.
Fix in CARLsim6 - There needs to be a check at synaptic generation for empty connections, and generate a random connection. With that the following steps should occur
Check for empty connections at generation
Randomly choose a synapse to create (note that just retrying over and over is probably not a good idea, since it may be a low probability)
Output a debug message and a user message that a synaptic connection was forcibly chosen
Update the documentation to note this issue on the Connections page in the user guide
The text was updated successfully, but these errors were encountered:
Thanks for the reply,
But based on my understanding a warning message is insufficient to fix this since technically speaking any randomly generated network could end up with no connections and fail (though some are extremely unlikely). There should be a requirement of at least one connection and then note a warning if this had occurred.
This is a needed change for anyone using smaller networks, or networks with lots of small groups.
Consider a network with 50 groups of 6 neurons each with a connection probability of 0.5 to every other group. On average 1/64 connections will generate 0 synapses and break CARLsim. Likely this network, would not successfully run on CARLsim because of this error. Even though the network as a whole would have 300 neurons and on average 4500 synapses.
Context - I'm working on smaller scale network models and comparing their network dynamics and potential for scaling. The current model we use has a wide selection of 9-param IZ groups, but some with significantly fewer neurons than another. I know that running smaller scale networks is faster on CPU, but often the networks may have one or two group with >1000 neurons, and one or two groups with <5 neurons, and it would be nice to not have to keep switching between the two.
Problem - Often times we are scaling to the point they may be only 1 neuron in a group, which may have a connection to another group with 1 neuron. While we test different connection probabilities, in this connection from a 1 neuron group to another 1 neuron group, it would often generate a connection with no synapses (based on the connection probability). This would throw a cuda memory error (since it would try and copy the non existent synaptic info)
Fix in my project - I think there are ways for me to avoid this in my work by just forcing probabilities to be 1 if there is a low enough number of neurons. BUT this is something that technically could always occur. For instance if there are 2 neurons in groups being connecting, a probability of 0.5 should work, but would fail 1/16 of the time.
Fix in CARLsim6 - There needs to be a check at synaptic generation for empty connections, and generate a random connection. With that the following steps should occur
The text was updated successfully, but these errors were encountered: