This is a simple simulation tool for neuron models.
Currently it supports SRM spiking model and the STDP learning model.
You can find everything on the documentation page.
Python simulations of neuron models like SRM and STDP
License: BSD 2-Clause "Simplified" License
This is a simple simulation tool for neuron models.
Currently it supports SRM spiking model and the STDP learning model.
You can find everything on the documentation page.
Is there a way where I could use the neuron models to learn the optimal weights using spike trains of an entire dataset? For example, I want to perform classification on the Iris Dataset using Spiking Neural Networks. I have my input and output encoded as spike trains, is there a way to use your model for training the entire dataset, instead of just one point? Thank you!
When I try to plot a psth diagram as in the Jeffress tutorial, I get the attached error.
psth = plotting.PSTH(spiketrain, binsize=5)
psth.show_plot(neuron_indices=[8, 9, 10])
plt.show()
Machine: Windows 64 bit, Python3
<class 'numpy.ndarray'>
Traceback (most recent call last):
File "jeffress_test1.py", line 41, in
psth.show_plot(neuron_indices=[8, 9, 10])
File \Python34\site-packages\neurons\plo
tting.py", line 72, in show_plot
axis.hist(times, bins, histtype='bar', stacked=True, fill=True, facecolor='g
reen', alpha=0.5, zorder=0)
File \site-packages\matplotlib\axes_axes.py", l
ine 5597, in hist
raise ValueError("x must have at least one data point")
ValueError: x must have at least one data point
Is it possible to accomplish some application such as pattern recognition using this framework?
Would be nice to have an unsymmetric learning window for STDP learning. At the moment there is only the paramater tau, which influences both the left (x<0) and the right (x>0) side.
See title.
The Izhikevich model in 'spiking.py' doesn't seem to work right.
I suspect this line: 'I = I + np.sum(w[fired, :], axis=0, keepdims=True)' to be false.
I don't like the way that I implemented the pytests.
Rewrite them in a better way, so that I can use them more easily.
Ideas: Learning and Spiking models as fixtures
Also, I notice a mistake in your implementation. I'm not sure, but you could check. At any timestep, if the potential of a neuron exceeds the threshold you let it spike. But it has to spike only once per threshold crossing (previous potential < threshold and current_potential > threshold). Don't you think so?
s = np.array([[1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
Output:
[[1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0]]
You get a series of consecutive spikes instead of just one.
In the SRM class, please recall the function nu to eta, to be consistent with the documentation for the model.
can we model the 3d sound perception of birds?
The idea is to use PyCuda to bring the spiketrain and weight arrays on the GPU and to manipulate it there.
The easiest solution would be to make two classes: One 'SRM_Cuda' in spiking, and 'STDP_Cuda' in learning.py, that take cuda memory references instead of numpy arrays as first argument.
At the moment the plotting api is pretty inconsistent.
Maybe we can make a unified toolbox out of it, which is easy to handle?
A Hinton Plot for weights would be cool. If time allows, maybe also animated?
Until now, the threshhold value for the neurons is unique among all neurons in the SRM model.
Maybe we can define a threshold for each neuron, similar to the way we can define a
Implement a Peri Stimulus Time Histogram plot.
What value should the kernel return in case of a spike?
Idea: a tuple (True, 0) iff spike, (False, value) else.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.