Hello, and thank you for the reply!
I have tried what you suggested, but it throws a validation error. I have managed to make it compile in a different way shown below but then I encounter another error when I try to run the simulator:
The data
raw_data = {}
Make it into dictionary
for i in range(data.shape[1]):
raw_data[dt*i] = data[0,i]
with Network(seed=seed) as model:
# Input is a pulse every pulse_interval seconds
U = np.zeros(int(pulse_interval / dt))
U[0] = amplitude / dt
u = nengo.Node(output=nengo.processes.PresentInput(U, dt))
# Desired output
z = nengo.Node(size_in=1,output=Piecewise(raw_data))
nengo.Connection(u, z)
Initial weights
e_in = g_in * rng.uniform(-1, +1, (n, 1)) # fixed encoders for f_in (u_in)
e_out = g_out * rng.uniform(-1, +1, (n, 1)) # fixed encoders for f_out (u)
JD = rng.randn(n, n) * g / np.sqrt(n) # target-generating weights (variance g^2/n)
Now it fails when I try to run the simulator:
~/.local/lib/python3.6/site-packages/nengo/processes.py in make_step(self, shape_in, shape_out, dt, rng)
425 def make_step(self, shape_in, shape_out, dt, rng):
426 tp, yp = zip(*sorted(iteritems(self.data)))
–> 427 assert shape_in == (0,)
428 assert shape_out == (self.size_out,)
429
AssertionError: