def fixed_number_pre_no_replacement(sim): sim.setup() p1 = sim.Population(5, sim.IF_cond_exp()) p2 = sim.Population(7, sim.IF_cond_exp()) synapse_type1 = sim.StaticSynapse(weight=0.5, delay=0.5) connector1 = sim.FixedNumberPreConnector(n=3, with_replacement=False, rng=NumpyRNG()) prj1 = sim.Projection(p1, p2, connector1, synapse_type1) print("Projection 1\n", connection_plot(prj1)) weights1 = prj1.get('weight', format='array', gather=False) for column in weights1.T: assert_equal((~numpy.isnan(column)).sum(), 3) column[numpy.isnan(column)] = 0 assert_equal(column.sum(), 1.5) synapse_type2 = sim.StaticSynapse(weight=RandomDistribution('gamma', k=2, theta=0.5), delay="0.2+0.3*d") prj2 = sim.Projection(p1, p2, connector1, synapse_type2) print("\nProjection 2\n", connection_plot(prj2)) weights2 = prj2.get('weight', format='array', gather=False) delays2 = prj2.get('delay', format='list', gather=False) print(weights2) print(delays2) for i, j, d in delays2: assert_almost_equal(d, 0.2 + 0.3 * abs(i - j), 9) for column in weights2.T: assert_equal((~numpy.isnan(column)).sum(), 3) column[numpy.isnan(column)] = 0 sim.end()
def fixed_number_post_with_replacement(sim): sim.setup() p1 = sim.Population(5, sim.IF_cond_exp()) p2 = sim.Population(7, sim.IF_cond_exp()) synapse_type1 = sim.StaticSynapse(weight=0.5, delay=0.5) connector1 = sim.FixedNumberPostConnector(n=9, with_replacement=True, rng=NumpyRNG()) prj1 = sim.Projection(p1, p2, connector1, synapse_type1) print("Projection #1\n", connection_plot(prj1)) delays = prj1.get('delay', format='list', gather=False) assert_equal(len(delays), connector1.n * p1.size) weights = prj1.get('weight', format='array', gather=False) for row in weights: row[numpy.isnan(row)] = 0 assert_equal(row.sum(), 4.5) weights2 = prj1.get('weight', format='array', gather=False, multiple_synapses='min') for row in weights2: n_nan = numpy.isnan(row).sum() row[numpy.isnan(row)] = 0 assert_equal(row.sum(), (row.size - n_nan) * 0.5)
def fixed_number_pre_with_replacement(sim): sim.setup() p1 = sim.Population(5, sim.IF_cond_exp()) p2 = sim.Population(7, sim.IF_cond_exp()) synapse_type1 = sim.StaticSynapse(weight=0.5, delay=0.5) connector1 = sim.FixedNumberPreConnector(n=3, with_replacement=True, rng=NumpyRNG()) prj1 = sim.Projection(p1, p2, connector1, synapse_type1) print("Projection #1\n", connection_plot(prj1)) delays = prj1.get('delay', format='list', gather=False) assert_equal(len(delays), connector1.n * p2.size) weights = prj1.get('weight', format='array', gather=False) for column in weights.T: column[numpy.isnan(column)] = 0 assert_equal(column.sum(), 1.5)
def fixed_number_post_with_replacement(sim): sim.setup() p1 = sim.Population(5, sim.IF_cond_exp()) p2 = sim.Population(7, sim.IF_cond_exp()) synapse_type1 = sim.StaticSynapse(weight=0.5, delay=0.5) connector1 = sim.FixedNumberPostConnector(n=9, with_replacement=True, rng=NumpyRNG()) prj1 = sim.Projection(p1, p2, connector1, synapse_type1) print("Projection #1\n", connection_plot(prj1)) delays = prj1.get('delay', format='list', gather=False) assert_equal(len(delays), connector1.n * p1.size) weights = prj1.get('weight', format='array', gather=False) for row in weights: row[numpy.isnan(row)] = 0 assert_equal(row.sum(), 4.5) weights2 = prj1.get('weight', format='array', gather=False, multiple_synapses='min') for row in weights2: n_nan = numpy.isnan(row).sum() row[numpy.isnan(row)] = 0 assert_equal(row.sum(), (row.size - n_nan)*0.5)
label="output") print "[%d] input_population cells: %s" % (node, input_population.local_cells) print "[%d] output_population cells: %s" % (node, output_population.local_cells) print "tau_m =", output_population.get('tau_m') print "[%d] Connecting populations" % node connector = sim.FixedProbabilityConnector(0.5, rng=rng) syn = sim.StaticSynapse(weight=1.0) projection = sim.Projection(input_population, output_population, connector, syn) filename = normalized_filename("Results", "simpleRandomNetwork", "conn", simulator_name, sim.num_processes()) projection.save('connections', filename) print connection_plot(projection.get('weight', format='array')) input_population.record('spikes') output_population.record('spikes') output_population.sample(n_record, rng).record('v') print "[%d] Running simulation" % node sim.run(tstop) print "[%d] Writing spikes and Vm to disk" % node filename = normalized_filename("Results", "simpleRandomNetwork_output", "pkl", simulator_name, sim.num_processes()) output_population.write_data(filename, annotations={'script_name': __file__}) ##input_population.write_data('%s_input.h5' % file_stem) spike_counts = output_population.get_spike_counts() for id in sorted(spike_counts):
input_population = sim.Population(10, sim.SpikeSourceArray(spike_times=spike_times), label="input") output_population = sim.Population(20, sim.IF_curr_exp(**cell_params), label="output") print "[%d] input_population cells: %s" % (node, input_population.local_cells) print "[%d] output_population cells: %s" % (node, output_population.local_cells) print "tau_m =", output_population.get('tau_m') print "[%d] Connecting populations" % node connector = sim.FixedProbabilityConnector(0.5, rng=rng) syn = sim.StaticSynapse(weight=1.0) projection = sim.Projection(input_population, output_population, connector, syn) filename = normalized_filename("Results", "simpleRandomNetwork", "conn", simulator_name, sim.num_processes()) projection.save('connections', filename) print connection_plot(projection.get('weight', format='array')) input_population.record('spikes') output_population.record('spikes') output_population.sample(n_record, rng).record('v') print "[%d] Running simulation" % node sim.run(tstop) print "[%d] Writing spikes and Vm to disk" % node filename = normalized_filename("Results", "simpleRandomNetwork_output", "pkl", simulator_name, sim.num_processes()) output_population.write_data(filename, annotations={'script_name': __file__}) ##input_population.write_data('%s_input.h5' % file_stem) spike_counts = output_population.get_spike_counts() for id in sorted(spike_counts):