def make_brian_group(trains): """Create Brian's spike generator group from spike trains. Parameters ---------- trains : spike_trains Input spike trains Returns ------- brian.SpikeGeneratorGroup Brian's spike generator group. """ import brian times = [] indices = [] for i, spikes in enumerate(trains['spikes']): times.append(spikes) indices.append(np.ones(len(spikes)) * i) indices = np.concatenate(indices) times = np.concatenate(times) * brian.second group = brian.SpikeGeneratorGroup( len(trains), spiketimes=(indices, times) ) return group
def simulation_example(brian_clock, brian): import numpy print "Simulation function!" brian.defaultclock = brian_clock Number_of_input_neurons = 20 spiketimes = [] Input_layer = brian.SpikeGeneratorGroup(20, spiketimes) Output_layer = brian.NeuronGroup(Number_of_input_neurons, model='v:1', reset=0, threshold=10) S = brian.Synapses(Input_layer, Output_layer, model='w:1', pre='v+=w') S[:, :] = 'i==j' S.w = 100 return Input_layer, Output_layer, [Input_layer, Output_layer], [S], []
count = 0 g = 2 liquid_neurons = br.NeuronGroup(N_liquid[0], model=eqs_hidden_neurons, refractory=2 * br.ms, reset=reset) liquid_inputs = liquid_neurons.subgroup(N_liquid[1]) liquid_hidden = liquid_neurons.subgroup(N_liquid[0] - N_liquid[1] - N_liquid[2]) liquid_output = liquid_neurons.subgroup(N_liquid[2]) spikes = [] hidden_neurons = [] # * len(N_hidden) input_neurons = br.SpikeGeneratorGroup(N_in + 1, spikes) Sin = br.Synapses(input_neurons, liquid_inputs, model='w:1', pre='ge+=w') Sliq = br.Synapses(liquid_neurons, liquid_neurons, model='w:1', pre='ge+=w') for i in range(len(N_hidden)): hidden_neurons.append( br.NeuronGroup(N_hidden[i], model=eqs_hidden_neurons, threshold=vt, refractory=2 * br.ms, reset=reset)) output_neurons = br.NeuronGroup(N_out, model=eqs_hidden_neurons, threshold=vt,