Exemple #1
0
    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)))
Exemple #2
0
    def test_binomial_distribution(self):
        import pyhmf as pynn
        pynn.setup()

        rng = pynn.NativeRNG()
        self.assertEqual(rng.next(
            distribution = "binomial", parameters = [100, 1.]), 100)
Exemple #3
0
    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")
Exemple #5
0
    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))
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
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))
Exemple #12
0
    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'))
Exemple #13
0
    def __init__(self, *args, **kwargs):

        self.random = pyhmf.NativeRNG()
Exemple #14
0
 def __init__(self, *args, **kwargs):
     self.random = pyhmf.NativeRNG()
     unittest.TestCase.__init__(self, *args, **kwargs)
Exemple #15
0
 def __init__(self, *args, **kwargs):
     AbstractRNG.__init__(self)
     self._impl = pyhmf.NativeRNG(*args, **kwargs)