def test_population_rset(self): import pyhmf as pynn pynn.setup() p = pynn.Population(123, pynn.EIF_cond_exp_isfa_ista) r1, r2 = pynn.NativeRNG(0), pynn.NativeRNG(0) d1 = pynn.RandomDistribution("uniform", [-55.0, -50.0]) d2 = pynn.RandomDistribution("uniform", [-55.0, -50.0]) p.rset("v_reset", d1) assert_array_equal(p.get("v_reset"), d2.next(len(p)))
def test_binomial_distribution(self): import pyhmf as pynn pynn.setup() rng = pynn.NativeRNG() self.assertEqual(rng.next( distribution = "binomial", parameters = [100, 1.]), 100)
def test_distribution_clip(self): import pyhmf as pynn pynn.setup() r = pynn.NativeRNG(0) d = pynn.RandomDistribution("uniform", [0.0, 25.0], r, (12.5, 12.5), "clip") assert_array_equal(d.next(100), numpy.ones(100) * 12.5)
def build(self): weights = self._create_nn_unit_weights(self.linearsize, self.dimension) self.neurons = [ pynn.Population(1, self.model) for _ in range(self.linearsize**self.dimension) ] self.exsources = pynn.Population(self.nsources, pynn.SpikeSourcePoisson, {'rate': self.sourcerate}) self.insources = pynn.Population(self.nsources, pynn.SpikeSourcePoisson, {'rate': self.sourcerate}) self.biasneurons = pynn.Population(self.nbiasneurons, self.model) connector = pynn.FixedNumberPreConnector(n=self.ksources, weights=0.3) proj = pynn.Projection(self.exsources, self.neurons, connector, target='excitatory', rng=pynn.NativeRNG(42)) proj = pynn.Projection(self.exsources, self.neurons, connector, target='inhibitory', rng=pynn.NativeRNG(42)) connector = pynn.FixedNumberPreConnector(n=self.nbiasneurons, weights=0.4) proj = pynn.Projection(self.biasneurons, self.neurons, connector, target='inhibitory', rng=pynn.NativeRNG(42)) for ipre, ipost, w in weights: connector = pynn.AllToAllConnector(weights=1) proj = pynn.Projection(self.neurons[ipre], self.neurons[ipost], connector, target="excitatory")
def build(self): weights = self._create_nn_unit_weights(self.linearsize, self.dimension) self.neurons = [ pynn.Population(1, self.model) for _ in range(self.linearsize**self.dimension) ] self.noise = pynn.Population(self.nsources, pynn.IF_cond_exp) self.biasneurons = pynn.Population(self.nbiasneurons, self.model) connector = pynn.FixedNumberPreConnector(n=30, weights=0.3, allow_self_connections=False) pynn.Projection(self.noise, self.noise, connector, target='inhibitory') connector = pynn.FixedNumberPreConnector(n=self.ksources, weights=0.3) pynn.Projection(self.noise, self.neurons, connector, target='excitatory', rng=pynn.NativeRNG(42)) pynn.Projection(self.noise, self.neurons, connector, target='inhibitory', rng=pynn.NativeRNG(43)) connector = pynn.FixedNumberPreConnector(n=self.kbiasneurons, weights=0.4) pynn.Projection(self.biasneurons, self.neurons, connector, target='inhibitory', rng=pynn.NativeRNG(44)) for ipre, ipost, w in weights: connector = pynn.AllToAllConnector(weights=1) pynn.Projection(self.neurons[ipre], self.neurons[ipost], connector, target="excitatory")
def build(self): self.neurons = pynn.Population(self.N, self.model) connector = pynn.FixedProbabilityConnector(p_connect=self.prob, allow_self_connections=True, weights=0.003) pynn.Projection(self.neurons, self.neurons, connector, target='excitatory', rng=pynn.NativeRNG(42))
def build(self): self.neurons = pynn.Population(self.N, self.model) connector = pynn.FixedNumberPreConnector(self.K, weights=1, allow_self_connections=False) pynn.Projection(self.neurons, self.neurons, connector, target='excitatory', rng=pynn.NativeRNG(42))
def test_normaldistribution(self): import pyhmf as pynn pynn.setup() mean = 42.0 std = 3.3 r = pynn.NativeRNG(10) d = pynn.RandomDistribution("normal", [mean, std]) data = d.next(100000) self.assertAlmostEqual(numpy.mean(data), mean, places=1) self.assertAlmostEqual(numpy.std(data), std, places=1)
def test_distribution_redraw(self): import pyhmf as pynn pynn.setup() r = pynn.NativeRNG(0) d = pynn.RandomDistribution("uniform", [0.0, 25.0], r, (5.0, 20.0), "redraw") data = d.next(260) self.assertLessEqual(max(data), 20.0) self.assertGreaterEqual(min(data), 5.0) data2 = data[data <= 5.0] data2 = data2[data2 >= 20] self.assertEqual(len(data2), 0)
def test_init_random(self): size = random.randint(2, 10)**2 seed = 1337 pynn_dist = pynn.RandomDistribution(distribution='uniform', rng=NativeRNGProxy(seed)) pyhmf_dist = pyhmf.RandomDistribution(distribution='uniform', rng=pyhmf.NativeRNG(seed)) numpy.testing.assert_almost_equal( self.construct_with_backend(pynn, size, pynn_dist), self.construct_with_backend(pyhmf, size, pyhmf_dist))
def build(self): self.neurons = [] for i in range(self.num_layers): self.neurons.append( pynn.Population(self.neurons_per_layer, self.model)) connector = pynn.FixedProbabilityConnector( p_connect=self.conn_prob, allow_self_connections=False, weights=0.003) proj = [] for i in range(1, self.num_layers): proj = pynn.Projection(self.neurons[i - 1], self.neurons[i], connector, target='excitatory', rng=pynn.NativeRNG(42))
def test_projection(self): path = tempfile.mkstemp()[1] size_a = random.randint(1, 100) size_b = random.randint(1, 100) dist = pyhmf.RandomDistribution(rng=pyhmf.NativeRNG(1337)) conn_pyhmf = pyhmf.AllToAllConnector(weights=dist, delays=42) proj_pyhmf = pyhmf.Projection( pyhmf.Population(size_a, pyhmf.IF_cond_exp), pyhmf.Population(size_b, pyhmf.IF_cond_exp), conn_pyhmf) proj_pyhmf.saveConnections(getattr(pyhmf, self.file_type)(path, 'w')) conn_pynn = pynn.FromFileConnector(getattr(pynn.recording.files, self.file_type)(path)) proj_pynn = pynn.Projection( pynn.Population(size_a, pynn.IF_cond_exp), pynn.Population(size_b, pynn.IF_cond_exp), conn_pynn) numpy.testing.assert_equal(proj_pyhmf.getWeights(format='array'), proj_pynn.getWeights(format='array'))
def __init__(self, *args, **kwargs): self.random = pyhmf.NativeRNG()
def __init__(self, *args, **kwargs): self.random = pyhmf.NativeRNG() unittest.TestCase.__init__(self, *args, **kwargs)
def __init__(self, *args, **kwargs): AbstractRNG.__init__(self) self._impl = pyhmf.NativeRNG(*args, **kwargs)