hugochateaulaurent / snn-computing Goto Github PK
View Code? Open in Web Editor NEWSimulator of spiking neural networks for neuromorphic computing
License: MIT License
Simulator of spiking neural networks for neuromorphic computing
License: MIT License
It would be great to be able to see connection parameters without opening their properties
box.
Linux users experienced problems with the java fx path, not all realized how to add
the path to java fx from the terminal.
Sometimes neurons fire at steps 0 or 1 when in theory they should not.
While creating the network, after running it a couple of times to test and solving some
issues with mistakes I had made, the GUI stopped responding to the RUN command and I
had to restart and fiddle with some of the synapses before it worked again. Multiple times
while using the measurement tools they stopped responding to anything. Recreating them
didn’t help. ”Arrayindexoutofbounds: 2” in the command line log. The solution seemed to be
to reset the delay on a synapse or recreate a synapse.
"When there is a Synapse from A->B, and you try to flip its direction by clicking B
then A, it overlays a neuron B->A overtop the A->B, making things go very wrong"
-> The connection is not flipped, a new connection is created. The problem is that multiple connections between two neurons overlap.
Save as/load feature does not work. Upon clicking the ”save as” button the following
error appears in the terminal: Calling save as Exception in thread ”JavaFX Application
Thread” java.lang.IllegalArgumentException: Folder parameter must be a valid folder
[for some only save as did not work, for others all options under file did not work]
Would be great to have an indicator of which graph represents which node, and which
node is exactly which node
In this assignment the program barely functioned in my computer (macOS mojave 10.14) I was
unable to open it through command line or by using eclipse, even though the times I tried with
different commands and options were numerous, also the advices from the discussion topic and
from the author himself were followed, all of them fruitless. Also when i opened the program
from the jar itself, the file options were not working, as I show in one of the screen recording.
And once the circuit was set up with all parameters from the slides properly placed and checked,
it malfunctioned and the result it provided were wrong and indifferent to changes in the values of
the delays (which are the encoding of the numbers to add) or K (the base for the calculation, if I
understood it properly). I'm also aware that the faulty results given in this part by the adder and
holder neurons were obtained by other classmates, however to get further they add to restart the
program and reload the net, which I could not do it, and even then, they would not get much
further.
It would be nice to have an modifications history, and the possibility to undo/redo modifications.
Also, when running the network for output tests, it gave a lot of different results with
the same parameters. The way to fix this way running it again with different runtimes and
after that i ran the network again with another runtime to get the same result as the test I did 3
tries ago. Also the graphs were somehow different every time I ran the network. All these
bugs and a lot of smaller ones caused me to not trust the results of the network and therefore i
had to guess each time if the results were correct. This really prevented me from doing any
serious improvement work on the network
Using more than something like 15 neurons and connections made the measurement
windows crash, showing no measurements.
Frustrated Linux user: Networks that I made ran fine the first time, only to “break”
without any discernible reason or warning. Multimeters would stop showing any
measurements. When a network broke in any way, there was no option than to start anew, as
diagnosing one single bug out of the many that were occurring at the same time was nigh
impossible. Knowing in advance, after some time, that every network would break down at
some seemingly random time and that I would have to be ready to remake everything at the
drop of a hat, did help me to make some progress. This time I was lucky to run Linux, as my
fellow students that had Macs or Windows computers could not in any way save their work.
The slightest scrolling moves the whole network out of sight and it is impossible to find it again. The only way to recover from that is to quit the GUI and make the network from scratch. Also when moving the network with right click you can put parts of the network outside of screen and never see them again.
[many reported the network being out of the screen and not possible to find again by zooming out, but for some it would only be moved to a corner of the screen]
After running the simulation once, then changing the network and rerunning the
simulator, the raster and multimeter plot do not update if the number of simulation steps are
the same. To get updated plots you need to run every time with different steps. Even if the
number of simulation steps is changed every time, still on one occasion the GUI got stuck at
did not update the plots anymore. The only way to update the plots is to quit the program and
build the whole network from scratch.
It appears to be impossible to remove connections between objects once you’ve made
them. You have to just remove the node/lif/etc. in that case and recreate it from scratch.
Include user guidance (how to use the simulator together with outlining current
functionality in terms of undo operations, moving whole graphs, specify what different
mouse click actions can do, etc.)
On a general note for the future of the GUI, I believe it will be more convenient if there is
a feature to build the network from code, then upon running he code the GUI pops up and
you can do some change in parameters and running simulations. The benefit of building
the network from code is that you can see many of the network parameters and once, you
can define constants like K in this assignment that are used in many places in the
network. Using code would also mean that it will be possible to make custom
abstractions of whole circuit or sub-circuit that can be used in combination to make more
complicated circuits. One more thing that will be very helpful is to add a feature for
labelling the neurons, for example when editing the properties, there is a label field that
later shows up as text on the neuron
Someone saved a network to disk and got a very lengthy error in the terminal (also
Linux user). The network could not be retrieved (at least the student reported so)
Deleting connecting from raster/multi-meter to a neuron causes the corresponding
plot to disappear, deleting the raster/multi-meter does not result in the plots disappearing
It was also confusing that there is no control over the graphs and often one graph
would scale differently than the graph of a similar neuron, making it hard to compare them.
Furthermore, it is very hard to see what is going on at each discrete time step. Especially
when voltage both peaks and is immediately reset at the same time, making it hard to read
out the residual for example.
It would be nice to save the layout of the network instead of generating a random one when loading a project.
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.