Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


tutorials:tutorial_1

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
tutorials:tutorial_1 [2016/09/02 04:37] – [Simulate the model] adds explanation zenketutorials:tutorial_1 [2017/04/24 19:16] (current) – Changes links to fzenke.net zenke
Line 1: Line 1:
-====== Tutorial 1 ======+====== Tutorial 1: Single neuron with Poisson input ======
  
 Here you will learn to simulate a single AdEx neuron and record spikes and membrane potentials. Here you will learn to simulate a single AdEx neuron and record spikes and membrane potentials.
Line 8: Line 8:
 <code c++> <code c++>
 int main(int ac, char* av[]) int main(int ac, char* av[])
 +{
      
 } }
Line 17: Line 18:
 using namespace auryn; using namespace auryn;
 int main(int ac, char* av[]) int main(int ac, char* av[])
 +{
   auryn_init( ac, av );   auryn_init( ac, av );
          
Line 24: Line 26:
 } }
 </code> </code>
-For convenience we also set our current namespace to Auryn's namespace.+For convenience we also set our current namespace to Auryn's namespace. You also might want to specify an output directory, a simulation name and maybe the name of the logfile. All these information can be passed as additional parameters to [[http://fzenke.net/auryn/doxygen/current/auryn__global_8cpp.html|auryn_init]]. This hasn't been done here for simplicity.
  
  
Line 82: Line 84:
  
 One comment is in order: Writing output to disk is computationally expensive. It's often possible to speed up a simulation substantially by reducing the amount of data that's saved. Choose the variables you want to record carefully and you will be rewarded with code that runs much faster. One comment is in order: Writing output to disk is computationally expensive. It's often possible to speed up a simulation substantially by reducing the amount of data that's saved. Choose the variables you want to record carefully and you will be rewarded with code that runs much faster.
-===== Simulate the model =====+ 
 + 
 +===== Simulating the model =====
  
 Now all that's left to do is to tell the Auryn kernel how long we want to run our simulation. Let's say we want to run for 2 seconds. We write: Now all that's left to do is to tell the Auryn kernel how long we want to run our simulation. Let's say we want to run for 2 seconds. We write:
Line 104: Line 108:
 </code> </code>
  
-===== Visualizing the output =====+ 
 + 
 +====== Visualizing the output ======
  
 Each monitor has written its own output file. Let's take a look at the membrane potential, which is the file with the [[manual:mem]] extension. Each monitor has written its own output file. Let's take a look at the membrane potential, which is the file with the [[manual:mem]] extension.
  
-I like plotting things in [[gnuplot]], but you might have your own preferences such as Python matplotlib or something else. The [[manual:ras]] and [[manual:mem]] files are human readable ASCII files (you can just open them with an editor to see their structure) so most plotters should work.+I like plotting things in [[http://gnuplot.info/|gnuplot]], but you might have your own preferences such as Python matplotlib or something else. The [[manual:ras]] and [[manual:mem]] files are human readable ASCII files (you can just open them with an editor to see their structure) so most plotters should work.
  
 Here is my voltage trace as plotted by Gnuplot: Here is my voltage trace as plotted by Gnuplot:
Line 123: Line 129:
  
 In the [[Tutorial 2|next section]] you will learn how to simulate a recurrent network model instead of single neuron. In the [[Tutorial 2|next section]] you will learn how to simulate a recurrent network model instead of single neuron.
-===== Exercises =====+ 
 + 
 +====== Exercises ======
   * Play with different rate values for the Poisson processes   * Play with different rate values for the Poisson processes
   * Replace the AdEx by an Izhikevich neuron   * Replace the AdEx by an Izhikevich neuron
   * Add a second Poisson input population which provides inhibitory input to the output neuron   * Add a second Poisson input population which provides inhibitory input to the output neuron
   * Simulate 2 or more neurons and connect them with sparse connectivity (see [[manual:SparseConnection]]). Then visualize the different voltage traces (note that you will have to define a different [[manual:VoltageMonitor]] instance for each neuron you record from).   * Simulate 2 or more neurons and connect them with sparse connectivity (see [[manual:SparseConnection]]). Then visualize the different voltage traces (note that you will have to define a different [[manual:VoltageMonitor]] instance for each neuron you record from).
tutorials/tutorial_1.1472791058.txt.gz · Last modified: 2016/09/02 04:37 by zenke