Skip to content

Commit a8c4d64

Browse files
Merge pull request #691 from BindsNET/hananel
monitors periodic update
2 parents 38c4306 + 89cc96e commit a8c4d64

File tree

3 files changed

+1263
-1250
lines changed

3 files changed

+1263
-1250
lines changed

bindsnet/network/monitors.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ def __init__(
5454
if self.time is None:
5555
self.device = "cpu"
5656

57+
self.clean = True
58+
5759
self.recording = []
5860
self.reset_state_variables()
5961

@@ -68,16 +70,20 @@ def get(self, var: str) -> torch.Tensor:
6870
Note, if time == `None`, get return the logs and empty the monitor variable
6971
7072
"""
71-
return_logs = torch.cat(self.recording[var], 0)
72-
if self.time is None:
73-
self.recording[var] = []
73+
if self.clean:
74+
return_logs = torch.empty(0, device=self.device)
75+
else:
76+
return_logs = torch.cat(self.recording[var], 0)
77+
if self.time is None:
78+
self.recording[var] = []
7479
return return_logs
7580

7681
def record(self) -> None:
7782
# language=rst
7883
"""
7984
Appends the current value of the recorded state variables to the recording.
8085
"""
86+
self.clean = False
8187
for v in self.state_vars:
8288
data = getattr(self.obj, v).unsqueeze(0)
8389
# self.recording[v].append(data.detach().clone().to(self.device))
@@ -101,6 +107,7 @@ def reset_state_variables(self) -> None:
101107
self.recording = {
102108
v: [[] for i in range(self.time)] for v in self.state_vars
103109
}
110+
self.clean = True
104111

105112

106113
class NetworkMonitor(AbstractMonitor):

0 commit comments

Comments
 (0)