6
6
from bindsnet .network .topology_features import Weight , Bias
7
7
from bindsnet .learning .MCC_learning import PostPre
8
8
9
- network = Network (dt = 1.0 )
10
- source_layer = LIFNodes (n = 5 , traces = True )
11
- target_layer = LIFNodes (n = 5 , traces = True )
12
-
13
-
14
- network .add_layer (source_layer , name = "input" )
15
- network .add_layer (target_layer , name = "output" )
16
9
10
+ network = Network (dt = 1.0 )
11
+ neurons_number = 7
12
+ layer = LIFNodes (n = neurons_number , traces = True )
13
+ network .add_layer (layer , name = "input" )
14
+ network .add_layer (layer , name = "output" )
15
+ mask = ~ torch .tril (torch .ones ((neurons_number , neurons_number )), diagonal = - 1 ).bool ()
17
16
weight = Weight (
18
17
name = 'weight_feature' ,
19
- value = torch .rand (5 , 5 ) ,
18
+ value = torch .rand (neurons_number , neurons_number ) * mask ,
20
19
learning_rule = PostPre ,
21
20
nu = (1e-4 , 1e-2 )
22
21
)
23
- bias = Bias (name = 'bias_feature' , value = torch .rand (5 , 5 ))
24
-
22
+ bias = Bias (
23
+ name = 'bias_feature' ,
24
+ value = torch .rand (neurons_number , neurons_number )
25
+ )
25
26
connection = MulticompartmentConnection (
26
- source = source_layer ,
27
- target = target_layer ,
27
+ source = layer ,
28
+ target = layer ,
28
29
pipeline = [weight , bias ],
29
- mask = ~ torch . tril ( torch . ones (( 5 , 5 )), diagonal = - 1 ). bool () ,
30
+ mask = mask ,
30
31
device = 'cpu'
31
32
)
32
33
network .add_connection (connection , source = "input" , target = "output" )
33
- print (connection .pipeline [0 ].value )
34
34
network .run (
35
- inputs = {"input" : torch .bernoulli (torch .rand (250 , 5 )).byte ()},
35
+ inputs = {"input" : torch .bernoulli (torch .rand (250 , neurons_number )).byte ()},
36
36
time = 250
37
- )
38
- print (connection .pipeline [0 ].value )
37
+ )
0 commit comments