def do_all_constraint(self): synfire_run = SynfireRunner() synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, delay=delay, run_times=[runtime], placement_constraint=placement_constraint, record=True, record_7=True, record_v=True, record_v_7=True, record_gsyn_exc=True, record_gsyn_exc_7=True, record_gsyn_inh=False) gsyn_exc = synfire_run.get_output_pop_gsyn_exc_numpy() v = synfire_run.get_output_pop_voltage_numpy() spikes = synfire_run.get_output_pop_spikes_numpy() self.assertEqual(n_neurons * runtime, len(gsyn_exc)) read_gsyn = numpy.loadtxt(gysn_file, delimiter=',') self.assertTrue(numpy.allclose(read_gsyn, gsyn_exc, rtol=1e-04), "gsyn neo method mismatch") self.assertEqual(n_neurons * runtime, len(v)) read_v = numpy.loadtxt(v_file, delimiter=',') self.assertTrue(numpy.allclose(read_v, v, rtol=1e-03), "v neo method mismatch") self.assertEqual(expected_spikes, len(spikes)) spike_checker.synfire_spike_checker(spikes, n_neurons) read_spikes = numpy.loadtxt(spike_file, delimiter=',') self.assertTrue(numpy.allclose(read_spikes, spikes), "spikes neo method mismatch")
def do_v_no_constraint(self): synfire_run = SynfireRunner() synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, delay=delay, run_times=[runtime], record=False, record_v=True, record_gsyn_exc_7=False, record_gsyn_inh=False) v = synfire_run.get_output_pop_voltage_numpy() self.assertEqual(n_neurons * runtime, len(v)) read_v = numpy.loadtxt(v_file, delimiter=',') self.assertTrue(numpy.allclose(read_v, v, rtol=1e-03), "v neo method mismatch")
def test_all_no_constarint(self): synfire_run = SynfireRunner() synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, delay=delay, run_times=[runtime], record=True, record_7=True, record_v=True, record_v_7=True, record_gsyn_exc=True, record_gsyn_exc_7=True, record_gsyn_inh=False) gsyn_exc_7 = synfire_run.get_output_pop_gsyn_exc_7() v_7 = synfire_run.get_output_pop_voltage_7() spikes_7 = synfire_run.get_output_pop_spikes_7() gsyn_exc = synfire_run.get_output_pop_gsyn_exc_numpy() v = synfire_run.get_output_pop_voltage_numpy() spikes = synfire_run.get_output_pop_spikes_numpy() self.assertEquals(n_neurons * runtime, len(gsyn_exc)) read_gsyn = numpy.loadtxt(gysn_file, delimiter=',') if not numpy.allclose(read_gsyn, gsyn_exc_7): for g1, g2 in zip(read_gsyn, gsyn_exc_7): if not numpy.allclose(g1, g2, rtol=1e-04): print(g1, g2, g1[2] - g2[2], (g1[2] - g2[2]) / g1[2]) self.assertTrue(numpy.allclose(read_gsyn, gsyn_exc_7, rtol=1e-04), "gsyn synakker method mismatch") self.assertTrue(numpy.allclose(read_gsyn, gsyn_exc, rtol=1e-04), "gsyn neo method mismatch") self.assertEquals(n_neurons * runtime, len(v)) read_v = numpy.loadtxt(v_file, delimiter=',') self.assertTrue(numpy.allclose(read_v, v_7, rtol=1e-03), "v synakker method mismatch") self.assertTrue(numpy.allclose(read_v, v, rtol=1e-03), "v neo method mismatch") self.assertEquals(expected_spikes, len(spikes)) spike_checker.synfire_spike_checker(spikes, n_neurons) read_spikes = numpy.loadtxt(spike_file, delimiter=',') self.assertTrue(numpy.allclose(read_spikes, spikes_7), "spikes synakker method mismatch") self.assertTrue(numpy.allclose(read_spikes, spikes), "spikes neo method mismatch")
def do_run(seed=None): # Simulate using both simulators synfire_run = SynfireRunner() synfire_run.do_run( n_neurons=1, input_class=SpikeSourcePoisson, rate=noise_rate, start_time=0, duration=simtime, seed=seed, use_spike_connections=False, cell_params=cell_params, run_times=[simtime], record=True, record_v=True, randomise_v_init=True, record_input_spikes=True, weight_to_spike=0.4) s_pop_voltages = synfire_run.get_output_pop_voltage_numpy() s_pop_spikes = synfire_run.get_output_pop_spikes_numpy() noise_spike_times = synfire_run.get_spike_source_spikes_numpy() return noise_spike_times, s_pop_spikes, s_pop_voltages
def do_sampling_rate(self): synfire_run = SynfireRunner() synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, delay=delay, run_times=[runtime], record=True, record_7=True, record_v=True, record_v_7=True, v_sampling_rate=2, gsyn_exc_sampling_rate=3, record_gsyn_exc=True, record_gsyn_exc_7=True, record_gsyn_inh=False) gsyn_exc_7 = synfire_run.get_output_pop_gsyn_exc_7() v_7 = synfire_run.get_output_pop_voltage_7() spikes_7 = synfire_run.get_output_pop_spikes_7() gsyn_exc = synfire_run.get_output_pop_gsyn_exc_numpy() v = synfire_run.get_output_pop_voltage_numpy() spikes = synfire_run.get_output_pop_spikes_numpy() read_gsyn = numpy.loadtxt(gysn_file, delimiter=',') small_gsyn = read_gsyn[read_gsyn[:, 1] % 3 == 0] self.assertEqual(len(small_gsyn), len(gsyn_exc_7)) self.assertTrue(numpy.allclose(small_gsyn, gsyn_exc_7, rtol=1e-04), "gsyn synakker method mismatch") self.assertTrue(numpy.allclose(small_gsyn, gsyn_exc, rtol=1e-04), "gsyn neo method mismatch") self.assertEqual(n_neurons*(runtime/2), len(v)) read_v = numpy.loadtxt(v_file, delimiter=',') small_v = read_v[read_v[:, 1] % 2 == 0] self.assertTrue(numpy.allclose(small_v, v_7, rtol=1e-03), "v synakker method mismatch") self.assertTrue(numpy.allclose(small_v, v, rtol=1e-03), "v neo method mismatch") self.assertEqual(expected_spikes, len(spikes)) spike_checker.synfire_spike_checker(spikes, n_neurons) read_spikes = numpy.loadtxt(spike_file, delimiter=',') self.assertTrue(numpy.allclose(read_spikes, spikes_7), "spikes synakker method mismatch") self.assertTrue(numpy.allclose(read_spikes, spikes), "spikes neo method mismatch")
runtime = 5000 neurons_per_core = n_neurons / 2 synfire_run = SynfireRunner() class SynfireIfCurrExp(BaseTestCase): def test_run(self): synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, run_times=[runtime], seed=self._test_seed) spikes = synfire_run.get_output_pop_spikes_numpy() self.assertEquals(263, len(spikes)) spike_checker.synfire_spike_checker(spikes, n_neurons) synfire_run.get_output_pop_gsyn_exc_numpy() synfire_run.get_output_pop_voltage_numpy() if __name__ == '__main__': synfire_run.do_run(n_neurons, neurons_per_core=neurons_per_core, run_times=[runtime]) gsyn = synfire_run.get_output_pop_gsyn_exc_numpy() v = synfire_run.get_output_pop_voltage_numpy() spikes = synfire_run.get_output_pop_spikes_numpy() plot_utils.plot_spikes(spikes) plot_utils.line_plot(v, title="v") plot_utils.heat_plot(gsyn, title="gsyn")