nengo.Connection(in_sig, sig_reserv, synapse=None)
        p_rate = nengo.Probe(sig_reserv.neurons)
        p_pat = nengo.Probe(in_sig)

    with nengo.Simulator(rate_acc) as rate_sim:
        rate_sim.run(t_period*t_scale*2)

    rate_data[i_s, :] = (rate_sim.data[p_rate][t_steps:])
    pat_data[i_s, :] = (rate_sim.data[p_pat][t_steps:])

# get the output weights using the usual decoder math
solver = nengo.solvers.LstsqL2(reg=0.02)
w_out, _ = solver(rate_data, pat_data)

# do SVD on the neuron data to get Conceptors
conceptors = get_conceptors(rate_data, n_sigs, t_steps, apert, n_neurons)


# use it for Conceptor testing
with nengo.Network() as conc_model:
    reserv = nengo.Ensemble(n_neurons, 1, neuron_type=nengo.LIFRate(), seed=SEED)

    class ConcGen:
        def __init__(self):
            self.count = 0

        def w_conc_gen(self, n):
            w = np.dot(conceptors[self.count], gen_w_rec(n))
            self.count += 1
            return w
Beispiel #2
0
from utils import get_conceptors

import scipy.io
import numpy as np
import ipdb


sig_num = 2
t_steps = 451
apert = np.ones(sig_num) * 10
n_neurons = 600

patts = []
concs = []

for fi in range(1, sig_num+1):
    patts.append(scipy.io.loadmat("test_files/patt%s.mat" % fi)['xCollector'].T)
    concs.append(scipy.io.loadmat("test_files/conc%s.mat" % fi)['af'])

corrs = scipy.io.loadmat("test_files/corrs.mat")['patternRs'][0]
cv = scipy.io.loadmat("test_files/conc_vals.mat")['Cs']

res_c = get_conceptors(patts, sig_num, t_steps, apert, n_neurons)

ipdb.set_trace()