Exemplo n.º 1
0
 def test_surrogate_get_item(self):
     test_vertex = MyTestVertex()
     self.assertEqual(test_vertex.cm, 0.2)
     self.assertEqual(test_vertex.tau_refract, 0.0)
     self.assertEqual(test_vertex.tau_syn_E, 5.0)
     surrogate = PyNNParametersSurrogate(test_vertex)
     self.assertEqual(surrogate['cm'], 0.2)
     self.assertEqual(surrogate['tau_refract'], 0.0)
     self.assertEqual(surrogate['tau_syn_E'], 5.0)
Exemplo n.º 2
0
    def __init__(self,
                 size,
                 cellclass,
                 cellparams,
                 spinnaker,
                 label,
                 structure=None):
        """
        Instantiates a :py:object:`Population`.
        """
        if size is not None and size <= 0:
            raise exceptions.ConfigurationException(
                "A population cannot have a negative or zero size.")

        # Create a partitionable_graph vertex for the population and add it
        # to PACMAN
        cell_label = label
        if label is None:
            cell_label = "Population {}"\
                         .format(Population._non_labelled_vertex_count)
            Population._non_labelled_vertex_count += 1
        cellparams['label'] = cell_label
        cellparams['n_neurons'] = size
        cellparams['machine_time_step'] = spinnaker.machine_time_step
        cellparams['timescale_factor'] = spinnaker.timescale_factor
        cellparams['spikes_per_second'] = spinnaker.spikes_per_second
        cellparams['ring_buffer_sigma'] = spinnaker.ring_buffer_sigma
        self._vertex = cellclass(**cellparams)
        self._spinnaker = spinnaker
        self._delay_vertex = None

        # Internal structure now supported 23 November 2014 ADR
        # structure should be a valid Space.py structure type.
        # generation of positions is deferred until needed.
        if structure:
            self._structure = structure
            self._positions = None
        else:
            self._structure = None

        self._spinnaker._add_population(self)
        self._spinnaker.add_vertex(self._vertex)

        self._parameters = PyNNParametersSurrogate(self._vertex)

        # initialize common stuff
        self._size = size
        self._record_spike_file = None
        self._record_v_file = None
        self._record_gsyn_file = None

        self._spikes = None
        self._v = None
        self._gsyn = None
Exemplo n.º 3
0
 def test_surrogate_set_item(self):
     test_vertex = MyTestVertex()
     self.assertEqual(test_vertex.cm, 0.2)
     self.assertEqual(test_vertex.tau_refract, 0.0)
     self.assertEqual(test_vertex.tau_syn_E, 5.0)
     surrogate = PyNNParametersSurrogate(test_vertex)
     surrogate['cm'] = 2.0
     surrogate['tau_refract'] = 10.5
     surrogate['tau_syn_E'] = 15
     self.assertEqual(surrogate['cm'], 2.0)
     self.assertEqual(surrogate['tau_refract'], 10.5)
     self.assertEqual(surrogate['tau_syn_E'], 15)
     self.assertEqual(test_vertex.cm, 2.0)
     self.assertEqual(test_vertex.tau_refract, 10.5)
     self.assertEqual(test_vertex.tau_syn_E, 15)
Exemplo n.º 4
0
 def test_surrogate_set_item_exception(self):
     test_vertex = MyTestVertex()
     surrogate = PyNNParametersSurrogate(test_vertex)
     with self.assertRaises(Exception):
         surrogate['tau_rev_e'] = 5