Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


manual:weightmonitor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
manual:weightmonitor [2016/08/22 16:48] – Added description zenkemanual:weightmonitor [2017/04/24 19:14] (current) – Changes links to fzenke.net zenke
Line 2: Line 2:
  
 This class monitors one or multiple synaptic weights over time and writes them to a human readable ASCII file. This class monitors one or multiple synaptic weights over time and writes them to a human readable ASCII file.
- +For the full class reference see its 
- +[[http://fzenke.net/auryn/doxygen/current/classauryn_1_1WeightMonitor.html|doxygen page]].
 ===== Usage example ===== ===== Usage example =====
  
Line 29: Line 28:
 ==== Adding a specific synaptic connection ==== ==== Adding a specific synaptic connection ====
  
-If you are interested in a specific synaptic connection, you can add it to the list using +If you are interested in a specific synaptic connection, you can add it to the list using the pre and post indices ([[NeuronID]])
 <code c++> <code c++>
-wmon->add_to_list( i);+wmon->add_to_list( prepost );
 </code> </code>
 or if you have a pointer ''ptr'' pointing to this synaptic weight: or if you have a pointer ''ptr'' pointing to this synaptic weight:
Line 67: Line 66:
  
 There is a similar function which takes two filenames and allows you to load the structure of SynFireChains into the WeightMonitor. There is a similar function which takes two filenames and allows you to load the structure of SynFireChains into the WeightMonitor.
 +
 +
 +==== Adding a list of connections ====
 +
 +Alternatively you can add a list of neurons to the list as follows:
 +<code c++>
 +int psize = 100; // block size
 +WeightMonitor * wmon = new WeightMonitor( con, sys->fn("con","syn"), 10 );
 +        for ( int i = 0 ; i < 5 ; ++i ) {
 +            for ( int j = 0 ; j < 5 ; ++j ) {
 +                std::vector<neuron_pair> sublist = con_ee->get_block(i*psize,(i+1)*psize,j*psize,(j+1)*psize);
 +                sublist.resize(50); // only record a maximum of 50 connections from each block
 +                wmon->add_to_list(sublist);
 +            }
 +        }
 +</code>
  
 For additional ways of loading weights to the least also see: For additional ways of loading weights to the least also see:
-http://www.fzenke.net/auryn/doxygen/current/classauryn_1_1WeightMonitor.html+http://fzenke.net/auryn/doxygen/current/classauryn_1_1WeightMonitor.html 
 + 
 + 
 + 
 +===== Output format ===== 
 + 
 +The WeightMonitor writes column formatted ASCII files with floating point values that can be read by most plotting tools which can process CSV and Python (numpy) or MATLAB. Per convention the first column holds the simulation time in seconds and the consecutive columns are the corresponding weight values in the order as they have been added to the list.  
 + 
 +This is shown in the example below. 
 +<code> 
 +30.000000 1.600000e-01 1.600000e-01  
 +30.100000 1.600000e-01 1.600000e-01  
 +30.200000 1.600000e-01 1.600000e-01  
 +30.300000 1.600000e-01 1.600000e-01  
 +30.400000 1.600000e-01 1.600000e-01  
 +30.500000 1.600000e-01 1.600000e-01  
 +30.600000 1.600000e-01 1.600000e-01  
 +30.700000 1.600000e-01 1.600000e-01  
 +30.800000 1.600000e-01 1.599996e-01  
 +30.900000 1.600000e-01 1.599996e-01  
 +31.000000 1.600000e-01 1.599996e-01  
 +31.100000 1.600000e-01 1.599996e-01  
 +31.200000 1.600000e-01 1.599996e-01  
 +31.300000 1.600000e-01 1.599996e-01  
 +31.400000 1.600000e-01 1.599996e-01  
 +31.500000 1.600000e-01 1.693685e-01  
 +31.600000 1.600000e-01 1.691309e-01  
 +31.700000 1.600000e-01 1.691309e-01  
 +31.800000 1.600000e-01 1.691309e-01  
 +31.900000 1.600000e-01 1.691309e-01 
 +... 
 +</code> 
 + 
 +Which can be plotted easily (for instance with 
 +https://github.com/fzenke/malleable/blob/master/bin/psyn.sh) 
 +{{ :manual:weightmonitor_psyn.png |}} 
 +The above example was recorded with [[examples:sim_background]]. Note that plasticity is only "switched on" at t=30s.
manual/weightmonitor.1471884496.txt.gz · Last modified: 2016/08/22 16:48 by zenke