Skip to content

Commit 202f16e

Browse files
committed
fix
1 parent 7a2fdb9 commit 202f16e

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

bindsnet/network/topology.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,8 +441,6 @@ def compute(self, s: torch.Tensor) -> torch.Tensor:
441441

442442
# Run through pipeline
443443
for f in self.pipeline:
444-
if type(f).__name__ == 'Weight' and self.mask is not None:
445-
f.value.masked_fill_(self.mask, 0)
446444
conn_spikes = f.compute(conn_spikes)
447445

448446
# Sum signals for each of the output/terminal neurons
@@ -492,6 +490,8 @@ def update(self, **kwargs) -> None:
492490
# Pipeline learning
493491
for f in self.pipeline:
494492
f.update(**kwargs)
493+
if type(f).__name__ == 'Weight' and self.mask is not None:
494+
f.value.masked_fill_(self.mask, 0)
495495

496496
def normalize(self) -> None:
497497
# language=rst

examples/dosidicus/network.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,32 @@
66
from bindsnet.network.topology_features import Weight, Bias
77
from bindsnet.learning.MCC_learning import PostPre
88

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")
169

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()
1716
weight = Weight(
1817
name='weight_feature',
19-
value=torch.rand(5, 5),
18+
value=torch.rand(neurons_number, neurons_number) * mask,
2019
learning_rule=PostPre,
2120
nu=(1e-4, 1e-2)
2221
)
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+
)
2526
connection = MulticompartmentConnection(
26-
source=source_layer,
27-
target=target_layer,
27+
source=layer,
28+
target=layer,
2829
pipeline=[weight, bias],
29-
mask=~torch.tril(torch.ones((5, 5)), diagonal=-1).bool(),
30+
mask=mask,
3031
device='cpu'
3132
)
3233
network.add_connection(connection, source="input", target="output")
33-
print(connection.pipeline[0].value)
3434
network.run(
35-
inputs={"input": torch.bernoulli(torch.rand(250, 5)).byte()},
35+
inputs={"input": torch.bernoulli(torch.rand(250, neurons_number)).byte()},
3636
time=250
37-
)
38-
print(connection.pipeline[0].value)
37+
)

0 commit comments

Comments
 (0)