-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmem_net.py
24 lines (18 loc) · 862 Bytes
/
mem_net.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import nengo
from nengo import spa
from nengo.networks.workingmemory import InputGatedMemory as WM
from nengo.spa.module import Module
import numpy as np
class MemNet(Module):
def __init__(self, d, mem_vocab, label=None, seed=None, add_to_container=None):
super(MemNet, self).__init__(label, seed, add_to_container)
gate_vocab = spa.Vocabulary(16)
gate_vocab.parse("OPEN+CLOSE")
with self:
self.mem = WM(100, d, difference_gain=15)
self.mem.label = "mem"
self.gate = nengo.Node(size_in=16)
nengo.Connection(self.gate, self.mem.gate,
transform=np.array([gate_vocab.parse("CLOSE").v]))
self.inputs = dict(default=(self.mem.input, mem_vocab), gate=(self.gate, gate_vocab))
self.outputs = dict(default=(self.mem.output, mem_vocab))