Project overview¶
The two core methods¶
At the very core of our simulations we only need two methods:
- check_spikes()
- learn_weights()
The first one, check_spikes(), checks if the neurons generate new spikes at a given time t. The second one, learn_weights(), updates the weights for a given spike train at time t.
This easy model of only two methods, makes the simulations very simple. For example:
timesteps = 3000
spiketrain = np.array( ... , dtype=bool)
weights = np.array( ... )
spike_model = spiking.SRM( ... )
learning_model = learning.STDP( ... )
for t in range(timesteps):
spike_model.check_spikes(spiketrain, weights, t)
learning_model.learn_weights(spiketrain, weights, t)
This code is sufficient for SRM neurons with STPD learning.
In the next articles Spiking models and Learning models we will have a closer look on those two methods.
Note
Both methods operate in-place:
- check_spikes() will change the spiketrain matrix in-place.
- learn_weights() will change the weights matrix in-place.
Visualizing¶
In simulations that involve many neurons, we need methods to investigate our simulations.
Thus, we provide some plotting functions, such as:
# IMAGES
All plotting functions are well documented in the auto-reference in Plotting.py.
We want to add more plots in future. Please give us your ideas for new plots, by writing a feature request.
Tools¶
We also wrote some tools, for example to create Poisson distributed spiketrains.
Please see the auto-reference at Tools.py.
Also, in this section, your ideas are heartily appreciated (feature request).