示例#1
0
    def __init__(self,
                 tau_m=20.0,
                 cm=1.0,
                 v_rest=-65.0,
                 v_reset=-65.0,
                 v_thresh=-50.0,
                 tau_syn_E=5.0,
                 tau_syn_I=5.0,
                 tau_refrac=0.1,
                 i_offset=0.0,
                 e_rev_E=0.0,
                 e_rev_I=-70.0,
                 du_th=0.5,
                 tau_th=20.0,
                 v=-65.0,
                 isyn_exc=0.0,
                 isyn_inh=0.0):
        # pylint: disable=too-many-arguments, too-many-locals
        neuron_model = NeuronModelLeakyIntegrateAndFire(
            v, v_rest, tau_m, cm, i_offset, v_reset, tau_refrac)
        synapse_type = SynapseTypeExponential(tau_syn_E, tau_syn_I, isyn_exc,
                                              isyn_inh)
        input_type = InputTypeConductance(e_rev_E, e_rev_I)
        threshold_type = ThresholdTypeMaassStochastic(du_th, tau_th, v_thresh)

        super(IFCondExpStoc, self).__init__(model_name="IF_cond_exp_stoc",
                                            binary="IF_cond_exp_stoc.aplx",
                                            neuron_model=neuron_model,
                                            input_type=input_type,
                                            synapse_type=synapse_type,
                                            threshold_type=threshold_type)
示例#2
0
    def __init__(self,
                 a=0.02,
                 b=0.2,
                 c=-65.0,
                 d=2.0,
                 i_offset=0.0,
                 u=-14.0,
                 v=-70.0,
                 tau_syn_E=5.0,
                 tau_syn_I=5.0,
                 e_rev_E=0.0,
                 e_rev_I=-70.0,
                 isyn_exc=0.0,
                 isyn_inh=0.0):
        # pylint: disable=too-many-arguments, too-many-locals
        neuron_model = NeuronModelIzh(a, b, c, d, v, u, i_offset)
        synapse_type = SynapseTypeExponential(tau_syn_E, tau_syn_I, isyn_exc,
                                              isyn_inh)
        input_type = InputTypeConductance(e_rev_E, e_rev_I)
        threshold_type = ThresholdTypeStatic(_IZK_THRESHOLD)

        super().__init__(model_name="IZK_cond_exp",
                         binary="IZK_cond_exp.aplx",
                         neuron_model=neuron_model,
                         input_type=input_type,
                         synapse_type=synapse_type,
                         threshold_type=threshold_type)
示例#3
0
    def __init__(self,
                 n_neurons,
                 spikes_per_second=AbstractPopulationVertex.
                 non_pynn_default_parameters['spikes_per_second'],
                 ring_buffer_sigma=AbstractPopulationVertex.
                 non_pynn_default_parameters['ring_buffer_sigma'],
                 incoming_spike_buffer_size=AbstractPopulationVertex.
                 non_pynn_default_parameters['incoming_spike_buffer_size'],
                 constraints=AbstractPopulationVertex.
                 non_pynn_default_parameters['constraints'],
                 label=AbstractPopulationVertex.
                 non_pynn_default_parameters['label'],
                 tau_m=default_parameters['tau_m'],
                 cm=default_parameters['cm'],
                 v_rest=default_parameters['v_rest'],
                 v_reset=default_parameters['v_reset'],
                 v_thresh=default_parameters['v_thresh'],
                 tau_syn_E=default_parameters['tau_syn_E'],
                 tau_syn_I=default_parameters['tau_syn_I'],
                 tau_refrac=default_parameters['tau_refrac'],
                 i_offset=default_parameters['i_offset'],
                 e_rev_E=default_parameters['e_rev_E'],
                 e_rev_I=default_parameters['e_rev_I'],
                 du_th=default_parameters['du_th'],
                 tau_th=default_parameters['tau_th'],
                 v_init=initialize_parameters['v_init'],
                 isyn_exc=default_parameters['isyn_exc'],
                 isyn_inh=default_parameters['isyn_inh']):
        # pylint: disable=too-many-arguments, too-many-locals
        neuron_model = NeuronModelLeakyIntegrateAndFire(
            n_neurons, v_init, v_rest, tau_m, cm, i_offset, v_reset,
            tau_refrac)
        synapse_type = SynapseTypeExponential(n_neurons,
                                              tau_syn_E,
                                              tau_syn_I,
                                              initial_input_exc=isyn_exc,
                                              initial_input_inh=isyn_inh)
        input_type = InputTypeConductance(n_neurons, e_rev_E, e_rev_I)
        threshold_type = ThresholdTypeMaassStochastic(n_neurons, du_th, tau_th,
                                                      v_thresh)

        super(IFCondExpStoc, self).__init__(
            n_neurons=n_neurons,
            binary="IF_cond_exp_stoc.aplx",
            label=label,
            max_atoms_per_core=IFCondExpStoc._model_based_max_atoms_per_core,
            spikes_per_second=spikes_per_second,
            ring_buffer_sigma=ring_buffer_sigma,
            incoming_spike_buffer_size=incoming_spike_buffer_size,
            model_name="IF_cond_exp_stoc",
            neuron_model=neuron_model,
            input_type=input_type,
            synapse_type=synapse_type,
            threshold_type=threshold_type,
            constraints=constraints)
    def __init__(
            self,
            n_neurons,
            spikes_per_second=_apv_defs['spikes_per_second'],
            ring_buffer_sigma=_apv_defs['ring_buffer_sigma'],
            incoming_spike_buffer_size=_apv_defs['incoming_spike_buffer_size'],
            constraints=_apv_defs['constraints'],
            label=_apv_defs['label'],
            a=default_parameters['a'],
            b=default_parameters['b'],
            c=default_parameters['c'],
            d=default_parameters['d'],
            i_offset=default_parameters['i_offset'],
            u_init=initialize_parameters['u_init'],
            v_init=initialize_parameters['v_init'],
            tau_syn_E=default_parameters['tau_syn_E'],
            tau_syn_I=default_parameters['tau_syn_I'],
            e_rev_E=default_parameters['e_rev_E'],
            e_rev_I=default_parameters['e_rev_I'],
            isyn_exc=default_parameters['isyn_exc'],
            isyn_inh=default_parameters['isyn_inh']):
        # pylint: disable=too-many-arguments, too-many-locals
        neuron_model = NeuronModelIzh(n_neurons, a, b, c, d, v_init, u_init,
                                      i_offset)
        synapse_type = SynapseTypeExponential(n_neurons, tau_syn_E, tau_syn_I,
                                              isyn_exc, isyn_inh)
        input_type = InputTypeConductance(n_neurons, e_rev_E, e_rev_I)
        threshold_type = ThresholdTypeStatic(n_neurons, _IZK_THRESHOLD)

        super(IzkCondExpBase, self).__init__(
            n_neurons=n_neurons,
            binary="IZK_cond_exp.aplx",
            label=label,
            max_atoms_per_core=IzkCondExpBase._model_based_max_atoms_per_core,
            spikes_per_second=spikes_per_second,
            ring_buffer_sigma=ring_buffer_sigma,
            incoming_spike_buffer_size=incoming_spike_buffer_size,
            model_name="IZK_cond_exp",
            neuron_model=neuron_model,
            input_type=input_type,
            synapse_type=synapse_type,
            threshold_type=threshold_type,
            constraints=constraints)
示例#5
0
    def __init__(
        self,
        n_neurons,
        spikes_per_second=AbstractPopulationVertex.
        non_pynn_default_parameters['spikes_per_second'],
        ring_buffer_sigma=AbstractPopulationVertex.
        non_pynn_default_parameters['ring_buffer_sigma'],
        incoming_spike_buffer_size=AbstractPopulationVertex.
        non_pynn_default_parameters['incoming_spike_buffer_size'],
        constraints=AbstractPopulationVertex.
        non_pynn_default_parameters['constraints'],
        label=AbstractPopulationVertex.non_pynn_default_parameters['label'],

        # TODO: neuron model parameters (add / remove as required)
        # neuron model parameters
        my_parameter=default_parameters['my_parameter'],
        i_offset=default_parameters['i_offset'],

        # TODO: threshold types parameters (add / remove as required)
        # threshold types parameters
        v_thresh=default_parameters['v_thresh'],

        # TODO: synapse type parameters (add /remove as required)
        # synapse type parameters
        tau_syn_E=default_parameters['tau_syn_E'],
        tau_syn_I=default_parameters['tau_syn_I'],
        isyn_exc=default_parameters['isyn_exc'],
        isyn_inh=default_parameters['isyn_inh'],

        # Add input type parameters for conductance
        e_rev_E=default_parameters['e_rev_E'],
        e_rev_I=default_parameters['e_rev_I'],

        # TODO: Optionally, you can add initial values for the state
        # variables; this is not technically done in PyNN
        v_init=initialize_parameters['v_init']):

        # TODO: create your neuron model class (change if required)
        # create your neuron model class
        neuron_model = MyNeuronModel(n_neurons, i_offset, my_parameter)

        # TODO: create your synapse type model class (change if required)
        # create your synapse type model
        synapse_type = SynapseTypeExponential(n_neurons, tau_syn_E, tau_syn_I,
                                              isyn_exc, isyn_inh)

        # TODO: create your input type model class (change if required)
        # create your input type model
        input_type = InputTypeConductance(n_neurons, e_rev_E, e_rev_I)

        # TODO: create your threshold type model class (change if required)
        # create your threshold type model
        threshold_type = ThresholdTypeStatic(n_neurons, v_thresh)

        # TODO: create your own additional inputs (change if required).
        # create your own additional inputs
        additional_input = None

        # instantiate the sPyNNaker system by initialising
        #  the AbstractPopulationVertex
        AbstractPopulationVertex.__init__(

            # standard inputs, do not need to change.
            self,
            n_neurons=n_neurons,
            label=label,
            spikes_per_second=spikes_per_second,
            ring_buffer_sigma=ring_buffer_sigma,
            incoming_spike_buffer_size=incoming_spike_buffer_size,

            # TODO: Ensure the correct class is used below
            max_atoms_per_core=(
                MyModelCondExpBase._model_based_max_atoms_per_core),

            # These are the various model types
            neuron_model=neuron_model,
            input_type=input_type,
            synapse_type=synapse_type,
            threshold_type=threshold_type,
            additional_input=additional_input,

            # TODO: Give the model a name (shown in reports)
            model_name="MyModelCondExpBase",

            # TODO: Set this to the matching binary name
            binary="my_model_cond_exp.aplx")