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
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()