Home
NEST Topology User Manual
Contents
1. mask grid rows 3 columns 5 anchor row 1 column 2 See Sec 2 1 1 for the distinction between layer coordinates and grid indices 19 3 4 Kernels 20 Figure 3 4 Grid masks for connections between grid based layers Left 5 x 3 mask with default alignment at upper left corner Center Same mask but anchored to center node at grid index 1 2 Right Same mask but anchor to the upper left of the mask at grid index 1 2 You can even place the anchor outside the mask conndict connection type divergent mask grid rows 3 columns 5 anchor row 1 column 2 The resulting connection patterns are shown in Fig 3 4 Connections specified using grid masks are generated more efficiently than connections specified using other mask types Note the following e Grid based masks are applied by considering grid indices The position of nodes in physical coordinates is ignored e In consequence grid based masks should only be used between layers with identical grid spacings e The semantics of the anchor property for grid based masks differ significantly for general masks described in Sec 3 3 1 For general masks the anchor is the center of the mask relative to the driver node For grid based nodes the anchor determines which mask element is aligned with the driver element 3 4 Kernels
2. Then the function is available to be used in connections e g nest Install mymodule l tp CreateLayer rows 11 columns 11 extent 1 1 elements iaf_neuron tp ConnectLayers 1 1 connection_type convergent mask circular radius 0 5 eerinell s ammeze e ag 1 0 s 2 0 es OW SiH 5 2 Adding masks The process of adding a mask is similar to that of adding a kernel function A subclass of nest Mask lt D gt must be defined where D is the dimension 2 or 3 In this case we will define a 2 dimensional elliptic mask by creating a class called EllipticMask First we must include another header file include mask h Compared to the Parameter class discussed in the previous section the Mask class has a few more methods that must be overridden class EllipticMask public nest Mask lt 2 gt public EllipticMask const DictionaryDatum amp d O y 10 updateValue lt double gt d r_x rx_ updateValue lt double gt d r_y ry_ using Mask lt 2 gt inside 34 5 2 Adding masks 35 returns true if point is inside the ellipse bool inside const nest Position lt 2 gt amp p const return p 0 p 0 rx_ rx_ p 1 p 1 ry_ ry_ lt 1 0 returns true if the whole box is inside the ellipse bool inside const nest Box lt 2 gt amp b const nest Position lt 2 gt p b lower left
3. 17 columns 4 composite element 11 27 connection 14 connection dictionary 14 connection type 14 ConnectLayers 14 15 constant kernel 20 convergent connection 14 coordinate mapping rules 16 coordinate system 5 16 coordinates 27 cut off kernel 21 delays stepwise 23 displacement 15 distance 15 distance dependent weight 23 distance dependent delay 23 divergent connection 14 doughnut 17 driver 15 egde_wrap 10 element 4 excentric kernel 21 extent 4 fan in 26 fan out 26 free layer 7 free probabilistic connections 20 Gaussian kernel 20 grid mask 19 grid spacing 5 grid based layer 4 hang 26 index 5 infinite loop 26 kernel 15 20 34 layer 4 mapping 16 mask 15 35 model 27 multapse 15 26 oversized mask 26 periodic boundary cond 10 16 23 24 pool 15 position 5 9 prescribed number of connections 26 probabilistic connection rules 20 randomized delay 23 randomized weight 23 rectangular 17 row 4 source 14 source layer 14 spherical 19 subnet 11 synapse model 28 target 14 target layer 14 topology_layer_free 11 topology_layer_grid 11 42
4. c_ nest Parameter x clone const return new Affine2DParameter x this private double a_ b_ c_ by The class contains a constructor which reads the value of the parameters a b and c from the dictionary provided by the user The function updateValue will do nothing if the given key is not in the dictionary and the default values a b 1 c O will be used The overridden method raw_value will return the actual value of the kernel func tion for the displacement given as the first argument which is of type nest Position lt 2 gt 33 5 2 Adding masks 34 The template argument 2 refers to a 2 dimensional position You can also implement a method taking a nest Position lt 3 gt as the first argument if you want to support 3 dimensional layers The second argument a random number generator is not used in this example The class also needs to have a clone method which will return a dynamically allocated copy of the object We use the default copy constructor to implement this To make the custom function available to the Topology module you need to regis ter the class you have provided To do this add the line nest TopologyModule register parameter lt Affine2DParameter gt affine2d to the function MyModule init in the file mymodule cpp Now compile and install the module by issuing make make install To use the function the module must be loaded into NEST using nest Install
5. e O e 0 05 axis rows y 0 10f e 0 e 0 e 0 15 i i i j i i i i i i i 0 00 0 05 0 10 0 15 0 20 0 25 0 30 0 35 0 40 0 45 0 50 x axis columns Figure 2 4 Layer with n 5 rows and n 3 columns spacing d 0 1 and the left edge of the extent at x 0 centered about the y axis The cross marks the point on the extent placed at the origin 0 0 the circle the center of the layer OC eee 0 5 i e e e gt e e ee e e ll a e un o a e e a 0 0 oo i gt 3 e e e o e e e e e e o E 0 5 H E Se 0 5 0 0 0 5 x axis columns Figure 2 5 A free layer with 50 elements uniformly distributed in an extent of size 1x1 2 3 3D layers 9 Figure 2 6 A free 3D layer with 200 elements uniformly distributed in an extent of size 1x1x1 e For free layers element positions are specified by the positions entry in the dic tionary passed to CreateLayer positions is mutually exclusive with rows columns entries in the dictionary e The positions entry must be a Python list or tuple of element coordinates i e of two element tuples of floats giving the x y coordinates of the elements One layer element is created per element in the positions entry e All layer element positions must be within the layer s extent Elements may be place on the perimeter of the extent as long
6. are based on the fol lowing principles e Periodic boundary conditions are always applied in the pool layer It is irrelevant whether the driver layer has periodic boundary conditions or not e By default Topology does not accept masks that are wider than the pool layer when using periodic boundary conditions Otherwise one pool node could ap pear as multiple targets to the same driver node as the masks wraps several times around the layer For layers with different extents in x and y directions this means that the maximum layer size is determined by the smaller extension e Kernel weight and delay functions always consider the shortest distance dis placement between driver and pool node In most physical systems simulated using periodic boundary conditions interactions between entities are short range Periodic boundary conditions are well defined in such cases In neuronal network models with long range interactions periodic bound ary conditions may not make sense In general we recommend to use periodic bound ary conditions only when connection masks are significantly smaller than the layers they are applied to Important changes upon NEST 2 0 e Prior to NEST 2 0 oversized masks were not prohibited by default and you may have created networks with oversized masks by accident You will now get a NEST error message in this case You can force Topology to accept oversized masks by adding allow oversized mask True to the
7. cen tered about each source node Since no connection kernel is specified we connect to all nodes within the mask Note the effect of normal and periodic boundary conditions on the connections created for different nodes in the layer as illustrated in Fig 3 1 3 2 Mapping source and target layers The application of masks and other functions depending on the distance or even the displacement between nodes in the source and target layers requires a mapping of coordinate systems between source and target layers Topology applies the following coordinate mapping rules 1 All layers have two dimensional Euclidean coordinate systems 2 No scaling or coordinate transformation can be applied between layers 16 3 3 Masks 17 3 The displacement d D P from node D in the driver layer to node P in the pool layer is measured by first mapping the position of D in the driver layer to the identical position in the pool layer and then computing the displacement from that position to P If the pool layer has periodic boundary conditions they are taken into account It does not matter for displacement computations whether the driver layer has periodic boundary conditions 3 3 Masks A mask describes which area of the pool layer shall be searched for nodes to connect for any given node in the driver layer We will first describe geometrical masks defined for all layer types and then consider grid based masks for grid based layers Note that th
8. is the layer from which source node are chosen Connection type The connection type determines how nodes are selected when ConnectLayers creates connections between layers It is either convergent or divergent Convergent connection When creating a convergent connection between layers Topol ogy visits each node in the target layer in turn and selects sources for it in the source layer Masks and kernels are applied to the source layer and periodic boundary conditions are applied in the source layer provided that the source layer has periodic boundary conditions Divergent connection When creating a divergent connection Topology visits each node in the source layer and selects target nodes from the target layer Masks kernels and boundary conditions are applied in the target layer 14 3 1 Basic principles 15 Driver When connecting two layers the driver layer is the one in which each node is considered in turn Pool When connecting two layers the pool layer is the one from which nodes are cho sen for each node in the driver layer I e we have Connection type Driver Pool convergent target layer source layer divergent source layer target layer Displacement The displacement between a driver and a pool node is the shortest vector connecting the driver to the pool node taking boundary conditions into accout Distance The distance between a driver and a pool node is the length of their dis
9. o 3 3 00009090 2 0090 2 e 000090090 1 e o o 1 o 00009090 0 eee 0 e 000000 1 e o 1 d 00009090 2 000000 2 e 00009090 3 0000900 3 000090090 4 000000 4 0000900 5 00009090 5 o 000000 S 4 3 2 10 12345 S 4 3 2 10 12345 Figure 3 1 Left Minimal connection example from a layer onto itself using a rectangu lar mask shown as red line for the node at 0 0 marked light red The targets of this node are marked with red dots The targets for the node at 4 5 marked light orange are marked with orange dots This node has fewer targets since it is at the corner and many potential targets are beyond the layer Right The effect of periodic boundary conditions is seen here Source and target layer and connection dictionary were iden tical except that periodic boundary conditions were used The node at 4 5 now has 15 targets too but they are spread across the corners of the layer If we wrapped the layer to a torus they would form a 5 x 3 rectangle centered on the node at 4 5 l te CreateLayer tows 11 columns 11 extent o 11 11 elements iaf_neuron conndict connection_type divergent mask E rectangular lower lett 2 1 upper_right 2 1 tp ConnectLayers 1l 1 conndict In this example layer 1 is both source and target layer Connection type is divergent i e for each node in the layer we choose targets according to the rectangular mask
10. type divergent mask circular radius 1 0 ekennele linear as Del aros eutotfe OOH number of connections 50 allow multapses True allow autapses False Functions determining weight and delay as function of distance displacement work in just the same way as before when the number of connections is prescribed 3 8 Connecting composite layers Connections between layers with composite elements are based on the following prin ciples e Allnodes within a composite element have the same coordinates the coordinates of the element e All nodes within a composite element are treated equally If e g an element of the pool layer contains three nodes and connection probability is 1 then connec tions with all three nodes will be created For probabilistic connection schemes each of the three nodes will be considered individually 26 3 9 Synapse models and properties 27 Connection probability pconn d 0 2 0 3 Source target distance d Figure 3 7 Distribution of distances between source and target for a network of 1000 randomly placed nodes a fixed fan out of 50 connections and a connection probability decaying linerarly from 1 to 0 at d 0 5 The red line is the expected distribution from Eq 3 1 e Ifonly nodes of a given model within each element shall be considered as sources or targets then this can be achieved by adding a sources or targets ent
11. ABS nsir ety Sec soccer ene atone Sea ag Ge acs Sear Se ae ah Se CONTENTS 2 6 Changes from Topology 2 0 to 2 2 37 7 Changes from Topology 1 9 to 2 0 38 Bibliography 39 List of Figures 40 List of Tables 41 Index 42 Chapter 1 Introduction The Topology Module provides the NEST simulator Gewaltig and Diesmann 2007 with a convenient interface for creating layers of neurons placed in space and connect ing neurons in such layers with probabilities and properties depending on the relative placement of neurons This permits the creation of complex networks with spatial structure This user manual provides an introdcution to the functionality provided by the Topology Module It is based exclusively on the PyNEST the Python interface to NEST Eppler et al 2008 NEST users using the SLI interface should be able to map instruc tions to corresponding SLI code This manual is not meant as a comprehensive refer ence manual Please consult the online documentation in PyNEST for details where appropriate that documentation also points to relevant SLI documentation This manual describes the Topology Module included with NEST 2 2 code revi sion 9977 or later This version differs from older ones in some important aspects as detailed in Section 6 In our experience though most scripts using the Topology Mod ule can be ported to the new version with minimal changes In the next chapter of this manual we introduce Topology layers which p
12. ALL_DIR This ensures that NEST will be able to find initializing SLI files for the module You should not use the prefix to select a different installation destination If you do you must make sure to use addpath in SLI before loading the module to ensure that NEST will find the SLI initialization file for your module 6 Compile make make install The previous command installed MyModule to the NEST installation directory including help files generated from the source code 32 5 1 Adding kernel functions 33 5 1 Adding kernel functions As an example we will add a kernel function called affine2d which will be linear actually affine in the displacement of the nodes on the form The kernel functions are provided by C classes subclassed from nest Parameter To enable subclassing add the following lines at the top of the file mymodule h tinclude topologymodule h include parameter h Then add the class definition e g near the bottom of the file before the brace closing the namespace mynest class Affine2DParameter public nest Parameter public Affine2DParameter const DictionaryDatum amp d Parameter d a_ 1 0 b_ 1 0 c_ 0 0 updateValue lt double gt d a a_ updateValue lt double gt d b b_ updateValue lt double gt d c c_ double raw_value const nest Position lt 2 gt amp disp librandom RngPtr amp const return a disp 0 b_ disp 1
13. Figure 2 3 Three layers centered respectively about 0 0 blue 1 1 green and 1 5 0 5 red e the left edge of the extent shall be at x 0 e the extent shall be centered about y 0 From Eq 2 1 we see that the extent of the layer must be n d nd We now need to find the coordinates cx cy of the center of the layer To place the left edge of the extent at x 0 we must place the center of the layer at cy n d 2 along the x axis i e half the extent width to the right of x 0 Since the layer is to be centered about y 0 we have c 0 Thus the center coordinates are n d 2 0 The layer is created with the following code and shown in Fig 2 4 DIAS d 0 1 l tp CreateLayer columns nc rows nr elements iaf neuron extent ncxd nrxd center ncxd 2 0 2 2 Free layers Free layers do not restrict node positions to a grid but allow free placement within the extent To this end the user needs to specify the positions of all nodes explicitly The following code creates a layer of 50 iaf neurons uniformly distributed in a layer with extent 1 x 1 i e spanning the square 0 5 0 5 x 0 5 0 5 import numpy as np pos np random uniform 0 5 0 5 np random uniform 0 5 0 5 for j in xrange 50 l tp CreateLayer positions pos elements iaf_neuron Note the following points 2 2 Free layers 8 oooh K
14. Many neuronal network models employ probabilistic connection rules Topology sup ports probabilistic connections through kernels A kernel is a function mapping the dis tance or displacement between a driver and a pool node to a connection probability Topology then generates a connections according to this probability Probabilistic connections can be generated in two different ways using Topology Free probabilistic connections are the default In this case ConnectLayers considers each driver node D in turn For each D it evaluates the kernel for each pool node P within the mask and creates a connection according to the resulting probability This means in particular that each possible driver pool pair is inspected exactly once and that there will be at most one connection between each driver pool pair 20 3 4 Kernels 21 Name Parameters Function constant constant p 0 1 uniform min max p min max uniformly linear a c pld c ad exponential a c tau p d c ae gaussian p_center sigma d 2 mean c i p d Cc Peentere o gaussian2D p center sigma x sigma y mean x dy px yy dx px dy py mean_y rho c ea gt 2p roy F p d C Pcenter RTPA Table 3 1 Kernel functions currently available in the Topology module d is the dis tance and dx dy the displacement Prescribed number of connections can be obtained by specifying the number of con necti
15. NEST Topology User Manual Hans Ekkehard Plesser H kon Enger Department of Mathematical Sciences and Technology Norwegian University of Life Sciences 1432 s Norway NEST 2 2 19977 or later nest initiative About the Topology Module This user manual gives a short introduction to the use of the Topology Module for the NEST Neural Simulation Tool Rtidiger Kupper wrote a first topology library for NEST many years ago entirly in SLI actually it pre dates the NEST kernel Kittel Austvoll and Hans Ekkehard Plesser designed and wrote a completely new Topology library in 2007 8 That library has been available with the NEST 1 9 x pre releases since For NEST 2 0 H kon Enger and Hans Ekkehard Plesser re factored parts of the Topology library code improved and extended the PyNEST interface for the Topology library fixed bugs and added tests For NEST 2 2 H kon Enger rewrote most of the Topology library code thereby improving performance considerably This User Manual describes the NEST 2 2 version of the NEST Topology Library Please see Chapter sec changes for a summary of changes We plan further improvements to the Topology Module in the future which may include changes to the API to remove some of the remaining inconsistencies and pro vide a cleaner user interface Copyright 2010 The NEST Initiative Contents 1 Introduction 1 1 Limitations and Disclaimer 0 0 0 0 2 00 000004 2 Layers ZT FGri
16. Neuroinfor matics 2 12 2008 doi 10 3389 neuro 11 012 2008 M O Gewaltig and M Diesmann Nest neural simulation tool Scholarpedia 2 4 1430 2007 Eilen Nordlie Marc Oliver Gewaltig and Hans Ekkehard Plesser Towards repro ducible descriptions of neuronal network models PLoS Comput Biol 5 8 e1000456 Aug 2009 doi 10 1371 journal pcbi 1000456 39 List of Figures 2 1 2 2 2 3 2 4 2 5 2 6 2 7 3 1 3 2 3 3 3 4 3 5 3 6 3 7 4 1 Simple grid based layer Di SAS SID a 5 Layer with non standard extent oaoa a 6 Layers with different centers pa a ooa Gan ele aa bs 7 Layer construction example tutela ollo EVI EAN E QUE ROE AE 8 Layer with freely spaced elements a ataca ls a abas posso a 8 3D layer with freely spaced elements unas pus sds a 9 Periodic boundary conditions dada da a 10 Minimal connection example sal A AA SS 16 Masks for 2D layers e sai Bod a a 18 Masks for 3D layers GA E aita or ot 19 Gnd maskis ma mti chi Sas oe RR a O ce as dr Ee tai 20 eine inch Oni eiae e a a a ES 22 Distance dependent and randomized weights and delays 24 Distribution of connection distances 27 Example of layer visualization a A a 31 40 List of Tables 3 1 Kernelfunctions 0 0 0 0 00 0 eee eee eee 41 Index 2D Gaussian kernel 21 3D layers 9 18 adding kernels and masks 33 anchor 17 19 autapse 15 box 18 center 4 6 circular
17. Python list or tuple The following code creates a 1 x 2 layer to keep the output from PrintNetwork compact in which each element consists of one iaf cond alpha and one poisson generator node l tp CreateLayer rows 1 columns 2 elements iaf cond alpha poisson generator 0 root dim 1 4 1 topology_layer_grid dim 4 11 2 5 Layers with composite elements 12 l 1 2 iaf cond alpha 3 4 poisson generator The network consist of one topology layer grid with four elements two iaf cond alpha and two poisson generator nodes The identical nodes are grouped so that the sub net contains first one full layer of iaf cond alpha nodes followed by one full layer of poisson generator nodes You can create network elements with several nodes of each type by following a model name with the number of nodes to be created l tp CreateLayer rows 1 columns 2 elements iaf cond alpha 10 poisson generator noise generator 2 0 root dim 1 26 1 topology_layer_grid dim 26 1 20 iaf_cond_alpha 21 22 poisson_generator 23 26 noise_generator In this case each layer element consists of 10 iaf cond alpha neurons one poisson generator and two noise_generators Note the following points e Each element of a layer has identical components e All nodes within a composite el
18. Test if all corners are inside mask if not inside p return false 0 0 p l0 b upper_right 0 if not inside p return false 0 1 p 1 b upper_right 1 if not inside p return false T plO b lower_left 0 if not inside p return false 1 0 return true returns bounding box of ellipse nest Box lt 2 gt get bbox const mest Position lt 2 gt ll rx_ ry_ nest Position lt 2 gt ur rx_ ry_ return nest Box lt 2 gt 1l ur nest Mask lt 2 gt clone const return new EllipticMask x this protected double X ry hi The overridden methods include a test if a point is inside the mask and for efficiency reasons also a test if a box is fully inside the mask We implement the latter by testing if all the corners are inside since our elliptic mask is convex We must also define a func tion which returns a bounding box for the mask i e a box completely surrounding the mask Similar to kernel functions the mask class must be registered with the topology module and this is done by adding a line to the function MyModule init in the file mymodule cpp nest TopologyModule register mask lt EllipticMask gt elliptic 35 5 2 Adding masks 36 After compiling and installing the module the mask is available to be used in connec tions e g nest Install mymodule l tee Greatebavyer tows 11 columns Co 11 extent 1 1 eleme
19. The resulting layer is shown in Fig 2 2 The extent is always a two element tuple of floats In this example we have grid spacings dx 0 4 and dy 0 1 Changing the extent does not affect grid indices 2 1 3 Setting the center Layers are centered about the origin 0 0 by default This can be changed through the center entry in the dictionary specifying the layer The following code creates layers centered about 0 0 1 1 and 1 5 0 5 respectively 11 tp CreateLayer rows 5 columns 5 elements iaf_neuron 12 center 1 1 13 center 1 5 0 5 The center is given as a two element tuple of floats Changing the center does not affect grid indices For each of the three layers in Fig 2 3 grid indices run from 0 to 4 through columns and rows respectively even though elements in these three layers have different positions in the gobal coordinate system 2 1 4 Constructing a layer an example To see how to construct a layer consider the following example e a layer with n rows and n columns e spacing between nodes is d in x and y directions tp CreateLayer rows 5 columns 5 elements iaf neuron tp CreateLayer rows 5 columns 5 elements iaf neuron 2 2 Free layers 7 y axis rows 1 4 1 2 1 0 0 8 0 6 0 4 0 20 0 0 2 0 4 0 6 0 8 1 0 1 2 1 4 1 6 1 8 2 0 x axis columns
20. as no periodic boundary conditions are used see Sec 2 4 e Element positions in free layers are not shifted when specifying the center of the layer The user must make sure that the positions given lie within the extent when centered about the given center 2 3 3D layers Although the term layer suggests a 2 dimensional structure the layers in NEST may in fact be 3 dimensional The example from the previous section may be easily extended with another component in the coordinates for the positions import numpy as np pos np random uniform 0 5 0 5 np random uniform 0 5 0 5 np random uniform 0 5 0 5 for j in xrange 200 l tp CreateLayer positions pos elements iaf_neuron 2 4 Periodic boundary conditions Simulations usually model systems much smaller than the biological networks we want to study One problem this entails is that a significant proportion of neurons in a 9 2 4 Periodic boundary conditions 10 2 0 1 0 0 0 1 0 2 0 oososSsS 2 0 1 0 0 0 1 0 2 0 00 6 Figure 2 7 Top left Layer with single row and five columns without periodic bound ary conditions Numbers above elements show element coordinates Colors shifting from blue to magenta mark increasing distance from the element at 2 0 Bottom left Same layer but with periodic boundary conditions Note that the element at 2 0 now is a nearest neighbor to the elem
21. ayer and is centered about the driver node Linear example ldict rows 1 columns 51 extent 51 1 center 25 0 elements iaf_neuron cdict connection type divergent mask rectangular lower_left 25 5 0 5 upper_right 25 5 0 5 welehts s 1 limear s e 10 as 0 05 cutoit ORES delays linear c 0 1 a 0 02 Results are shown in the top panel of Fig 3 6 Connection weights and delays are shown for the leftmost neuron as driver Weights drop linearly from 1 From the node at 20 0 on the cutoff sets weights to 0 There are no connections to nodes beyond 25 0 since as the mask extends only 25 units to the right of the driver Delays increase in a stepwise linear fashion as NEST requires delays to be multiples of the simulation resolution Linear example with periodic boundary conditions cdict connection_type divergent mask rectangular lower_left 25 5 0 5 upper_right 25 5 0 5 veto iter san limear s e 10 a s 0 05 cutoit eam O delays linear nace 0 1 a 0 02 Results are shown in the middle panel of Fig 3 6 This example is identical to the previous except that the pool layer has periodic boundary conditions There fore the left half of the mask about the node at 0 0 wraps back to the right half
22. cify a non uniform kernel e g Gaussian linear exponential the con nections will be distributed within the mask with the spatial profile given by the kernel 4 If you prohibit multapses cf Sec 3 1 1 and prescribe a number of connections greater than the number of pool nodes in the mask ConnectLayers may get stuck in an infinte loop and NEST will hang Keep in mind that the number of nodes within the mask may vary considerably for free layers with randomly placed nodes The following code generates a network of 1000 randomly placed nodes and con nects them with a fixed fan out of 50 outgoing connections per node distributed with a profile linearly decaying from unit probability to zero probability at distance 0 5 Mul tiple connections multapses between pairs of nodes are allowed self connections autapses prohibited The probability of finding a connection at a certain distance is then given by the product of the probabilities for finding nodes at a certain distance with the kernel value for this distance For the kernel and parameter values below we have 12 1 Peonn d ae 27r x 1 2r 24r 1 2r for 0 lt r lt 5 3 1 The resulting distribution of distances between connected nodes is shown in Fig 3 7 pos np random uniform 1 1 np random uniform 1 1 for j in xrange 1000 ldict positions pos extent 2 2 elements iaf neuron edge wrap True cdict connection
23. connection dictionary Be sure to inspect the results e g using DumpLayerConnections e Distance and displacement dependent kernel weight and delay functions did not handle periodic boundary conditions correctly prior to NEST 2 0 3 7 Prescribed number of connections We have so far described how to connect layers by either connecting to all nodes in side the mask or by considering each pool node in turn and connecting it according to a given probability function In both cases the number of connections generated depends on mask and kernel Many neuron models in the literature in contrast prescribe a certain fan in number of incoming connections or fan out number of outgoing connections for each node You can achieve this in Topology by prescribing the number of connections for each driver node For convergent connections where the target layer is the driver layer you thus achieve a constant fan in for divergent connections a constant fan out Connection generation now proceeds in a different way than before 1 For each driver node ConnectLayers randomly selects a node from the mask re gion in the pool layer and creates a connection with the probability prescribed by the kernel This is repeated until the requested number of connections has been created 25 3 8 Connecting composite layers 26 2 Thus if all nodes in the mask shall be connected with equal probability you should not specify any kernel 3 Ifyou spe
24. d ased Layers o je ti td A 2 Sah Bl 2 1 1 A very simple layer tak o aa de cai a 212 Setting theextent crs e e p ee RA RG Op E DA 2 1 3 Setting the center Y ap alee ae ap A baw a 2 1 4 Constructing a layer anexample o 22 Freelayefs ns 2 2 eda e dooa aa aa A a Buh ea ee ae ee G 23 UAV OTS 52 aee e NS E A 2 4 Periodic boundary conditions o oo oo 2 4 1 Topology layer as NEST subnet o o 2 5 Layers with composite elements o oaaao ooo o 2 5 1 Designing layers ica pd AA ok lt 4 3 Connections 3 1 Basic principles Caidos atico Po ao EP CADA eral aor AD Sd e os Sid AENOR O gh Aah Ra ah hak eh 3 1 2 A minimal ConnectLayers call 0 seg lice aaa 3 2 Mapping source and target layers o oo a o do MaS Gre daian aa aaea RN 3 3 1 Masks for 2D layers ousa pai A EA 3 3 2 Masks for 3D layers aa des a Ete a 3 3 3 Masks for grid based layers lt i ios a FA Kernels RN 3 5 Weights and delays sas agr a e a E NR AS 3 6 Periodic boundary conditions o ooo o 3 7 Prescribed number of connections e 3 8 Connecting composite layers su msama sa maes dew bea dew od 3 9 Synapse models and properties garras a He aoa oe e ra es 4 Inspecting Layers 4 1 Query functions sacas nes ie Be ds Ack Ae ad UA ee eS GS 42 Visualization functions A EE EEE IES 5 Adding topology kernels and masks 51 Addi g kernel functions sedas sth yet nes ssa ot a eda aa LD 5 2 Adding T
25. e mask size should not exceed the size of the layer when using peri odic boundary conditions since the mask would wrap around in that case and pool nodes would be considered multiple times as targets If none of the mask types provided in the topology library meet your need you may add more mask types in a NEST extension module This is covered in Chapter 5 3 3 1 Masks for 2D layers Topology currently provides three types of masks usable for 2 dimensional free and grid based layers They are illustrated in Fig 3 2 The masks are Rectangular All nodes within a rectangular area are connected The area is speficied by its lower left and upper right corners measured in the same unit as element coordinates Example conndict connection type divergent mask rectangular lower_left 2 1 upper a Circular All nodes within a circle are connected The area is specified by its radius conndict connection_type divergent mask circular radius 2 0 Doughnut All nodes between an inner and outer circle are connected Note that nodes on the inner circle are not connected The area is specified by the radii of the inner and outer circles conndict connection_type divergent mask doughnut inner_radius 1 5 outer_radius 3 By default the masks are centered about the position of the driver node mapped into the
26. ecial type of subnet From the user perspective the following points may be of interest e Grid based layers have the NEST model type topology_layer_grid free layers the model type topology_layer_free e The status dictionary of a layer has a topology entry describing the layer prop erties 1 is the layer created above print nest GetStatus 1 0 topology rows 5 center 0 0 0 0 edge_wrap False depth 1 extent 1 0 1 0 columns 5 The topology entry is read only e The NEST kernel sees the elements of the layer in the same way as the elements of any subnet You will notice this when printing a network with a Topology layer nest PrintNetwork depth 2 0 root dim 1 25 l 1 topology_layer_grid dim 25 l 1 25 iaf_neuron The 5 x 5 layer created above appears here as a topology_layer_grid subnet of 25 iaf_neurons Only Topology connection and visualization functions heed the spatial structure of the layer 2 5 Layers with composite elements So far we have considered layers in which each element was a single model neuron Topology can also create layers with composite elements i e layers in which each ele ment is a collection of model neurons or in general NEST network nodes Construction of layers with composite elements proceeds exactly as for layers with simple elements except that the elements entry of the dictionary passed to CreateLayer is a
27. ement have identical positions namely the posi tion of the layer element e When inspecting a layer as a subnet the different nodes will appear in groups of identical nodes e For grid based layers the function GetElement returns a list of nodes at a given grid position See Chapter 4 for more on inspecting layers e Ina previous version of the topology module it was possible to create layers with nested composite elements but such nested networks gobble up a lot of memory for subnet constructs and provide no practical advantages so this is no longer supported See the next section for design recommendations for more complex layers 2 5 1 Designing layers A paper on a neural network model might describe the network as follows 1See Nordlie et al 2009 for suggestions on how to describe network models 12 2 5 Layers with composite elements 13 The network consists of 20x20 microcolumns placed on a regular grid span ning 0 5 x 0 5 of visual space Neurons within each microcolumn are organized into L2 3 L4 and L56 subpopulations Each subpopulation consists of three pyramidal cells and one interneuron All pyramidal cells are modeled as NEST iaf neurons with default parameter values while in terneurons are iaf neurons with threshold voltage Vi 52mV How should you implement such a network using the Topology module The recom mended approach is to create different models for the neurons in each layer and the
28. ent at 2 0 Right Layer with periodic boundary condition arranged on a circle to illustrate neighborhood relationsships model network is close to the edges of the network with fewer neighbors than nodes properly inside the network In the 5 x 5 layer in Fig 2 1 e g 16 out of 25 nodes form the border of the layer One common approach to reducing the effect of boundaries on simulations is to introduce periodic boundary conditions so that the rightmost elements on a grid are considered nearest neighbors to the leftmost elements and the topmost to the bot tommost The flat layer becomes the surface of a torus Fig 2 7 illustrates this for a one dimensional layer which turns from a line to a ring upon introduction of periodic boundary conditions You specify periodic boundary conditions for a layer using the dictionary entry edge_wrap lp tp CreateLayer rows 1 columns 5 extent 5 12 elements iaf neuron edge wrap True Note that the longest possible distance between two elements in a layer without periodic boundary conditions is V Xe E ea V Xe Ta 2 for a layer with periodic boundary conditions xext and Yext are the components of the extent size We will discuss the consequences of periodic boundary conditions more in Chap ter 3 but only 10 2 5 Layers with composite elements 11 2 4 1 Topology layer as NEST subnet From the perspective of NEST a Topology layer is a sp
29. ers allow for more efficient connection generation under certain cir cumstances 2 1 Grid based Layers 2 1 1 Avery simple layer We create a first grid based simple layer with the following commands import nest topology as tp l tp CreateLayer rows a columns 5 elements iaf_neuron The layer is shown in Fig 2 1 Note the following properties e The layer has five rows and five columns e The elements entry of the dictionary passed to CreateLayer determines the ele ments of the layer In this case the layer contains iaf_neurons e The center of the layer is at the origin of the coordinate system 0 0 e The extent or size of the layer is 1 x 1 This is the default size for layers The extent is marked by the thin square in Fig 2 1 2 1 Grid based Layers 5 y axis rows L L L L L 0 4 0 2 0 0 0 2 0 4 x axis columns Figure 2 1 Simple grid based layer centered about the origin Blue circles mark layer elements the thin square the extent of the layer Row and column indices are shown in the right and top margins respectively e The grid spacing of the layer is x extent dx number of columns 2 1 ge y extent number of rows In the layer shown we have dx dy 0 2 but the grid spacing may differ in x and y direction e Layer elements are spaced by the grid spacing and are arranged symmetrically about the center e The outermost
30. es were placed on the edges of the extent so if you had an extend of 2 in x direction and 3 nodes these had x coordinates 1 0 1 The grid constant was extent num nodes 1 Now we define the grid constant as extent num_nodes center the nodes about 0 and thus add a space of half a grid constant between the outermost nodes and the boundary of the extent If you want three nodes at 1 0 1 you thus have to set the extent to 3 i e stretching from 1 5 to 1 5 The main reason for this change was that topology always added this padding silently when you used periodic boundary conditions otherwise neurons are the left and right edge would have been in identical locations not what one wants The semantics of the anchor entry for kernel functions has changed the anchor now specifies the center of the probability distribution relative to the driver node This is consistent with the semantics for free masks see Sec 3 3 and 3 4 Functions computing connection probabilities weights and delays as functions of distance between source and target nodes now handle periodic boudary con ditions correctly Masks with a diameter larger than the diameter of the layer they are applied to are now prohibited by default This avoids multiple connections when masks overwrap 38 Bibliography Jochen Martin Eppler Moritz Helias Eilif Muller Markus Diesmann and Marc Oliver Gewaltig PyNEST A convenient interface to the NEST simulator Front
31. ic synapse inh weight 8 0 diet rows 10 columns 10 elements pyr ine 4 cdict p2i connection type divergent mask circular radius 0 5 kernel 0 8 sources model pyr SEAL Set Seasons modelos in synapse model exc cdict_i2p connection type divergent mo ecran tliat lower_left 0 2 0 2 upper_right 0 sources model in l targets model pyr synapse model inh l tp CreateLayer Idict tp ConnectLayers l 1 cdict p2i tp ConnectLayers l 1 cdict i2p You have to use synapse models if you want to set e g the receptor type of con nections or parameters for plastic synapse models These can not be set in distance dependent ways at present 28 Chapter 4 Inspecting Layers We strongly recommend that you inspect the layers created by Topology to be sure that node placement and connectivity indeed turned out as expected In this chapter we describe some functions that NEST and Topology provide to query and visualize networks layers and connectivity 4 1 Query functions The following table presents some query functions provided by NEST nest and Topology tp For detailed information about these functions please see the online Python and SLI documentation nest PrintNetwork Print structure of networ
32. k or subnet from NEST perspective nest FindConnections Retrieve outgoing connections for a given source see also http www nest initiative org index php Connection Management nest GetNodes Applied to a layer returns GIDs of the layer ele ments For simple layers these are the actual model neurons for composite layers the top level subnets nest GetLeaves Applied to a layer returns GIDs of all actual model neurons ignoring subnets tp GetPosition Return the spatial locations of nodes tp GetLayer Return the layer to which nodes belong tp GetElement Return the node s at the location s in the given grid based layer s tp GetTargetNodes Obtain targets of a list of sources in a given target layer tp GetTargetPositions Obtain positions of targets of a list of sources in a given target layer tp FindNearestElement Return the node s closest to the location s in the given layer s tp FindCenterElement Return GID s of node closest to center of layer s 29 4 2 Visualization functions 30 tp Displacement Obtain vector of lateral displacement between nodes taking periodic boundary conditions into ac count tp Distance Obtain vector of lateral distances between nodes taking periodic boundary conditions into account tp DumpLayerNodes Write layer element positions to file tp DumpLayerConnections Write connectivity information to file This function may be very useful to check
33. lace neu rons in space In Chapter 3 we then describe how to connect layers with each other before discussing in Chapter 4 how you can inspect and visualize Topology networks Chapter 5 deals with the more advanced topic of extending the Topology module with custom kernel functions and masks provided by C classes in an extension module You will find the Python scripts used in the examples in this manual in the NEST source code directory under topology doc user_manual_scripts 1 1 Limitations and Disclaimer Undocumented features The Topology Module provides a number of undocumented features which you may discover by browsing the code These features are highly experimental and should not be used for simulations as they have not been validated INEST is available under an open source license at www nest initiative org 3 Chapter 2 Layers The Topology Module just Topology for short in the remainder of this document organizes neuronal networks in layers We will first illustrate how Topology places elements in simple layers where each element is a single model neuron Layers with composite elements are discussed in the following section We will illustrate the definition and use of layers using examples Topology distinguishes between two classes of layers grid based layers in which each element is placed at a location in a regular grid free layers in which elements can be placed arbitrarily in the plane Grid based lay
34. layer elements are placed dx 2 and dy 2 from the borders of the extent e Element positions in the coordinate system are given by x y pairs The coordi nate system follows that standard mathematical convention that the x axis runs from left to right and the y axis from bottom to top e Each element of a grid based layer has a row and column index in addition to its x y coordinates Indices are shown in the top and right margin of Fig 2 1 Note that row indices follow matrix convention i e run from top to bottom Following pythonic conventions indices run from 0 Note The definition of the extent has changed from NEST 1 9 to NEST 2 0 In NEST 1 9 the outermost elements of the layer were placed on the limits of the ex tent When working with periodic boundary conditions see Sec 2 4 Topology then silently padded the layer with half a grid spacing on all sides to ensure that nodes at opposite edges did not coincide 2 1 Grid based Layers 6 y axis rows bh w NH O 0 8 0 4 0 0 0 4 0 8 x axis columns Figure 2 2 Same layer as in Fig 2 1 but with different extent 2 1 2 Setting the extent Layers have a default extent of 1 x 1 You can specify a different extent of a layer i e its size in x and y direction by adding and extent entry to the dictionary passed to CreateLayer l tp CreateLayer rows no columns 5 extrem 2 0 0 5 elements iaf_neuron
35. layers For all mask types the driver node is marked by a wide light red circle the selected pool nodes by red dots and the masks by red lines From left to right box and spherical masks centered about the driver node lower left and upper right corners measured in the same unit as element coor dinates Example conndict connection type divergent mask box lower left 2 1 1 upper rigat pot Spherical All nodes within a sphere are connected The area is specified by its radius conndict connection type divergent mask spherical radius e 2 5 As in the 2D case you can change the location of the mask relative to the driver node by specifying a 3D vector in the anchor entry in the mask dictionary 3 3 3 Masks for grid based layers Grid based layers can be connected using rectangular grid masks For these you spec ify the size of the mask not by lower left and upper right corner coordinates but give their size in rows and columns as in this example conndict connection_type divergent mask grid rows 3 columns 5 The resulting connections are shown in Fig 3 4 By default the top left corner of a grid mask i e the grid mask element with grid index 0 0 is aligned with the driver node You can change this alignment by specifying an anchor for the mask conndict connection_type divergent
36. les mark layer elements red circles connection targets of the center neuron marked by large light red circle The large red circle is the mask the dashed green lines mark 0 20 and 30 of the Gaussian kernel 31 Chapter 5 Adding topology kernels and masks This chapter will show examples of how to extend the topology module by adding custom kernel functions and masks Some knowledge of the C programming lan guage is needed for this The functions will be added as a part of an extension module which is dynamically loaded into NEST For more information on writing an extension module see the section titled Writing an Extension Module in the NEST Developer Manual The basic steps required to get started are 1 From the NEST source directory copy directory examples MyModule to some where outside the NEST source build or install directories 2 Change to the new location of MyModule and prepare by issuing bootstrap sh 3 Leave MyModule and create a build directory for it e g mmb next to it mol cs mkdir mmb cd mmb 4 Configure The configure process uses the script nest config to find out where NEST is installed where the source code resides and which compiler options were used for compiling NEST If nest config is not in your path you need to provided it explicitly like this MyModule configure with nest NEST_INSTALL_DIR bin nest config 5 MyModule will then be installed to NEST_INST
37. n define the microcolumn as one composite element for lyr an L23 CLA EST nest CopyModel iaf_neuron lyr pyr nest CopyModel iaf neuron lyr in V_th 52 l tp CreateLayer rows 20 columns 20 extent 0 5 0 5 relements A yoy kines cLApyri os Am L56pyr 3 L56in We will discuss in Chapter 3 1 how to connect selectively to different neuron models 13 Chapter 3 Connections The most important feature of the Topology module is the ability to create connections between layers with quite some flexibility In this chapter we will illustrate how to specify and create connections All connections are created using the ConnectLayers function 3 1 Basic principles 3 1 1 Terminology We begin by introducing important terminology Connection In the context of connections between the elements of Topology layers we often call the set of all connections between pairs of network nodes created by a single call to ConnectLayers a connection Connection dictionary A dictionary specifying the properties of a connection between two layers in a call to CreateLayers Source The source of a single connection is the node sending signals usually spikes In a projection the source layer is the layer from which source node are chosen Target The target of a single connection is the node receiving signals usually spikes In a projection the target layer
38. nts iaf_neuron tp ConnectLayers 1 1 connection type convergent ei O usa US 2 lo 36 Chapter 6 Changes from Topology 2 0 to 2 2 This is a short summary of the most important changes in the Topology Module from NEST version 2 0 to 2 2 Nested layers are no longer supported Subnets are no longer used inside composite layers A call to GetElement for a composite layer willnow return a list of GIDs for the nodes at the position rather than a single subnet GID Positions in layers may now be 3 dimensional The functions GetPosition Displacement and Distance now only works for nodes local to the current MPI process if used in a MPI parallel simulation It is now possible to add kernel functions and masks to the Topology module through an extension module Please see Chapter 5 for examples 37 Chapter 7 Changes from Topology 1 9 to 2 0 This is a short summary of the most important changes in the NEST Topology Module from the 1 9 xxxx to the 2 0 version ConnectLayer is now called ConnectLayers Several other functions changed names and there are many new functions Please see Ch 4 for an overview All nest topology functions now require lists of GIDs as input not naked GIDs There are a number of new functions in nest topology I tried to write good doc strings for them For grid based layers ie those with rows and columns we have changed the definition of extent Previously nod
39. of the layer and that node connects to all nodes in the layer Various functions edict connection type divergent masia rectangular lower_left 25 5 0 5 upper_right 25 5 0 5 ete is exponential a 1 dantas a 23 3 5 Weights and delays 24 e Weight e Delay 9600000000 00000 Linear Exponential Gaussian Uniform 0 5 10 15 20 25 30 35 40 45 50 Figure 3 6 Distance dependent and randomized weights and delays See text for de tails cdict connection type divergent mask rectangular 5 lower lett 25 5 0 5 Uppersricnt poses Oso weights gaussian pocenter 1 sigma o 5 Results are shown in the bottom panel of Fig 3 6 It shows linear exponential and Gaussian weight functions for the node at 25 0 Randomized weights and delays cdict connection_type divergent mask lt a rectangular lower_left 25 5 0 5 Dp persrient Ps soa weights uniform min 0 2 max 0 8 By using the uniform function for weights or delays one can obtain randomized values for weights and delays as shown by the red circles in the bottom panel of Fig 3 6 Weights and delays can currently only be randomized with uniform distribution 24 3 6 Periodic boundary conditions 25 3 6 Periodic boundary conditions Connections between layers with periodic boundary conditions
40. ons to create per driver node See Sec 3 7 for details Available kernel functions are shown in Table 3 1 More kernel function may be created in a NEST extension module This is covered in Chapter 5 Several examples follow They are illustrated in Fig 3 5 Constant The simplest kernel is a fixed connection probability conndict connection type divergent mask circular radius 4 kernel 0 5 Gaussian This kernel is distance dependent In the example connection probability is 1 for d 0 and falls off with a standard deviation of 1 conndict connection_type divergent mask circular radius 4 kernel gaussian p_center 1 0 sigma 1 Excentric Gaussian In this example both kernel and mask have been moved using anchors conndict connection type divergent mask circular radius 4 anchor 1 5 1 5 Kernels gaussian p_center ae 1 anchor 1 5 1 5 21 3 4 Kernels 22 Figure 3 5 Illustration of various kernel functions Top left constant kernel p 0 5 Top center Gaussian kernel green dashed lines show g 20 30 Top right Same Gaussian kernel anchored at 1 5 1 5 Bottom left Same Gaussian kernel but all p lt 0 5 treated as p 0 Bottom center 2D Gaussian Note that the anchor for the kernel is specified in
41. place ment Mask The mask defines which pool nodes are at all considered as potential targets for each driver node See Sec 3 3 for details Kernel The kernel is a function returning a possibly distance or displacment dependent probability for creating a connection between a driver and a pool node The default kernel is 1 i e connections are created with certainty See Sec 3 4 for details Autapse An autapse is a synapse connection from a node onto itself Autapses are permitted by default but can be disabled by adding allow autapses False to the connection dictionary Multapse Node A is connected to node B by a multapse if there are synapses connec tions from A to B Multapses are permitted by default but can be disabled by adding allow multapses False to the connection dictionary 3 1 2 A minimal ConnectLayers call Connections between Topology layers are created by calling ConnectLayers with the following arguments 1 The source layer 2 The target layer can be identical to source layer 3 A connection dictionary that contains at least the following entries connection type Either convergent or divergent mask A mask specification as described in Sec 3 3 Here is a simple example cf 3 1 You can also use standard NEST connection functions to connect nodes in Topology layers 15 3 2 Mapping source and target layers 16 5 5 o 00 00 o 4 4 9 000000 3 e o
42. pool layer You can change the location of the mask relative to the driver node by specifying an anchor entry in the mask dictionary The anchor is a 2D vector spec ifying the location of the mask center relative to the driver node as in the following examples cf Fig 3 2 bottom row 17 3 3 Masks 18 Figure 3 2 Masks for 2D layers For all mask types the driver node is marked by a wide light red circle the selected pool nodes by red dots and the masks by red lines Top row from left to right rectangular circular and doughnut masks centered about the driver node Bottom row from left to right the same masks as in the top row but centered about 1 5 1 5 2 0 and 1 5 1 5 respectively using the anchor parameter conndict connection type divergent mask rectangular lower left 2 1 upper_right 2 1 anchor 1 5 1 5 conndict connection type divergent mask circular radius 2 0 anchor 2 0 0 0 conndict connection_type divergent mask doughnut inner_radius 1 5 outer_radius 3 anchor 1 5 1 5 3 3 2 Masks for 3D layers Similarly there are two mask types that can be used for 3D layers Box All nodes within a cuboid volume are connected The area is speficied by its 18 3 3 Masks 19 Figure 3 3 Masks for 3D
43. ry to the connection dictionary which speficies the model to connect This is exemplified by the following code which connects pyramidal cells pyr to interneurons in with a circular mask and uniform probablity and interneurons to pyramidal cells with a rectangular mask unit probability nest ResetKernel nest CopyModel iaf_neuron pyr nest CopyModel iaf_neuron in ldict rows 10 Ceolumns 10 elements py in cdict_p2i connection type divergent mask circular radius 0 5 kernel 0 8 sources model pyr targets model in Il cdict_i2p connection type divergent mask ec tan la lower_left USA peer right 0 sources model in targets model pyr l tp CreateLayer Idict tp ConnectLayers l 1 cdict p2i tp ConnectLayers l 1 cdict i2p 3 9 Synapse models and properties By default ConnectLayers creates connections using the default synapse model in NEST static synapse You can specify a different model by adding a synapse model entry to 27 3 9 Synapse models and properties 28 the connection dictionary as in this example nest ResetKernel nest CopyModel iaf_neuron pyr nest CopyModel iaf neuron in nest CopyModel static synapse exc weight 2 0 nest CopyModel stat
44. side the dictionary containing the parameters for the Gaussian Cut off Gaussian In this example all probabilties less than 0 5 are set to zero conndict connection_type divergent mask circular radius 4 kernel Sauissian 28 picenter Co sigma i cutoff 0 5 2D Gaussian We conclude with an example using a two dimensional Gaussian i e a Gaussian with different widths in x and y directions This kernel depends on displacement not only on distance conndict connection_type divergent mask circular radius 4 kernel gaussian2D p_center 1 0 sigma_x 1 cigmany ao Note that for pool layers with periodic boundary conditions Topology always uses the shortest possible displacement vector from driver to pool neuron as argument to the kernel function 22 3 5 Weights and delays 23 3 5 Weights and delays The functions presented in Table 3 1 can also be used to specify distance dependent or randomized weights and delaysfor the connections created by ConnectLayers Figure 3 6 illustrates weights and delays generated using these functions with the following code examples All examples use a layer of 51 nodes placed on a line the line is centered about 25 0 so that the leftmost node has coordinates 0 0 The distance between neighboring elements is 1 The mask is rectangular spans the entire l
45. that Topology created the correct connection structure 4 2 Visualization functions Topology provides three functions to visualize networks PlotLayer Plot nodes in a layer PlotTargets Plot all targets of a node in a given layer PlotKernel Add indication of mask and kernel to plot of layer It does not wrap masks and kernels with respect to periodic boundary conditions This function is usu ally called by PlotTargets The following code shows a practical example A 21 x 21 network which con nects to itself with divegent Gaussian connections The resulting graphics is shown in Fig 4 1 All elements and the targets of the center neuron are shown as well as mask and kernel l tp CreateLayer rows 21 columns 21 elements iaf_neuron conndict connection_type divergent mask circular radius 0 4 kernel gaussian p_center 1 0 siema cs 0 15 tp ConnectLayers 1l 1 conndict fig tp PlotLayer l nodesize 80 ctr tp FindCenterElement 1 tp PlotTargets ctr 1 fig fig mask conndict mask kernel conndict kernel src size 250 tgt_color red tgt size 20 kernel_color green 30 4 2 Visualization functions 31 0000900 coVTCO OO cofres coco cooo o coobogoco coco comodo po 0 0 0000000000 pp petted da Figure 4 1 21 x 21 grid with divergent Gaussian projections onto itself Blue circ
Download Pdf Manuals
Related Search
Related Contents
ダウンロード - 三菱電機エンジニアリング株式会社 Bedienungsanleitung KBS Kühltheke Merado User manual here 取扱説明書 - NTTアドバンステクノロジ RCA TP282BLN User's Manual Versionshinweise zu Sun Java System Application Server 91 Démarrage de la formation UVProbe Samsung D908 紅色 User Manual IBM (02K3454) SCSI Controller Copyright © All rights reserved.
Failed to retrieve file