Skip to content

AstrocyteBase and Astrocyte

Arpit Shah edited this page Dec 26, 2018 · 10 revisions

Description

The AstrocyteBase class sets the properties for the Astrocyte class and translates between used-defined and internal class properties.

The Astrocyte class contains the functions for creating instances of an Astrocyte on Loihi and incorporating it into an SNN.

Within the Astrocyte class, there are 4 compartments created and the connections between them.

  • Spike Receiver
  • IP3 Integrator
  • SIC
  • Spike Generator

Note that this documentation follows the Loihi NxNet API.

API

Astrocyte

Properties

net: nx.NxNet

The network which this Astrocyte should be defined for. Internal compartments within the Astrocyte model would be defined on this network.

i.e. the spike receiver compartment, IP3 integrator, spike generator, etc.

ip3_sensitivity

The ip3_sensitivity value is used to influence sensitivity of the IP3 compartment to the spikes from the spike receiver compartment. The value is expected to be at least 1 and less than or equal to 100. (Default=20)

sic_amplitude

The sic_amplitude value is used to configure the maximum firing rate of spike generator compartment.

Note: the sic_amplitude parameter should be used in conjunction with the sic_window parameter. Otherwise, the provided parameter value will not influence the actual astrocyte instance.

Note: the sic_amplitude parameter is only used as an approximation during the instantiation of the astrocyte.

sic_window

The sic_window value is used to configure the time between the first and last of the spikes from the spike generator compartment during the burst-spike behavior. The provided value is assumed to be in milliseconds.

Note: the sic_window parameter should be used in conjunction with the sic_amplitude parameter. Otherwise, the provided parameter value will not influence the actual astrocyte instance.

Note: the sic_window parameter is only used as an approximation during the instantiation of the astrocyte.

srVThMant

The srVThMant value is used to influence the threshold for the spike receiver compartment's spike. When the spike receiver compartment's compartmentVoltage exceeds 2^6 * srVThMant then the spike receiver will send a spike to the IP3 integrator compartment. (Default=100)

srCurrentDecay

Decay constant by which the spike receiver compartment's compartmentCurrent decays per time step. (Default=409)

srVoltageDecay

Decay constant by which the spike receiver compartment's compartmentVoltage decays per time step. (Default=1024)

srActivityImpulse

The srActivityImpulse value specifies by how much the spike receiver compartment's activity increases for each spike from the spike receiver. (Default=0)

srActivityTimeConstant

Decay time constant by which the spike receiver compartment's activity decays approximately exponentially over time. (Default=0)

srMinActivity

srMinActivity is the lower threshold below which srVThMant gets decreased to increase the spike receiver compartment's activity. (Default=0)

srMaxActivity

srMaxActivity is the upper threshold beyond which srVThMant gets increased to decrease the spike reciever compartment's activity. (Default=127)

srHomeostasisGain

srHomeostasisGain controls how strongly srVThMant gets modified by the spike receiver compartment's activity leaving the range defined by srMinActivity and srMaxActivity. (Default=0)

srEnableHomeostasis

srEnableHomeostasis determines whether srVThMant gets updated via activity driven threshold homeostasis. See Intel Loihi's documentation for details. (Default=0)

ip3VThMant

The ip3VThMant value is used to influence the threshold for the IP3 integrator compartment's spike. When the IP3 integrator compartment's compartmentVoltage exceeds 2^6 * ip3VThMant then the Astrocyte's IP3 integrator compartment will send a spike to the SIC compartment.

(Default=15000)

ip3CurrentDecay

Decay constant by which the IP3 integrator compartment's compartmentCurrent decays per time step. (Default=4096)

ip3VoltageDecay

Decay constant by which the IP3 integrator compartment's compartmentVoltage decays per time step. (Default=1)

sicCurrentDecay

Decay constant by which the SIC compartment's compartmentCurrent decays per time step. (Default=40)

sicVoltageDecay

Decay constant by which the SIC compartment's compartmentVoltage decays per time step. (Default=40)

sgVThMant

The sgVThMant value is used to influence the threshold for the spike generator compartment's spikes. When the spike generator compartment's compartmentVoltage exceeds 2^6 * sgVThMant then the Astrocyte's spike generator compartment will send a spike to the output neurons as specified using connectOutputNeurons(outputs, ...).

(Default=5000)

sgCurrentDecay

Decay constant by which the spike generator unit's compartmentCurrent decays per time step. (Default=409)

sgVoltageDecay

Decay constant by which the spike generator unit's compartmentVoltage decays per time step. (Default=40)

sr2ip3Weight

The weight of the connection from the spike receiver compartment to the IP3 integrator compartment in the Astrocyte model.

Min: 1
Max: 127
(Default=20)

ip32sicWeight

The weight of the connection from the IP3 integrator compartment to the SIC compartment in the Astrocyte model.

Min: 1
Max: 127
(Default=20)

Functions

connectInputNeurons(inputs, num, connectionMask=1, weight=10)

Connect pre-synaptic neurons (inputs) to the Astrocyte's spike receiver compartment. Expects num to be equal to the number of neuron compartments provided as inputs.

Parameters:

  • inputs
    Pre-synaptic neuron compartments to connect to this Astrocyte

  • num
    The number of neuron compartments provided

  • connectionMask
    A connection mask (Numpy ndarray) with shape (1, num) with values 0 or 1 to control whether some compartments from inputs are actually connected.

    If the default integer value is provided then a full connection mask will be created internally to connect all compartments from inputs to the Astrocyte's spike receiver.

    (Default=1)

  • weight
    Weight(s) of the connection(s) from each of the compartments in inputs to the Astrocyte's spike receiver.

    If an integer is provided, all connections will have the integer weight as their weight respectively.

    A Numpy ndarray of shape (1, num) can be provided to use varying weights across the different connections formed.

    (Default=10)

connectOutputNeurons(outputs, num, connectionMask=1, weight=30)

Connect the Astrocyte's spike generator compartment to the post-synaptic neuron compartments (provided as outputs). Expects num to be equal to the number of neuron compartments provided as outputs.

Parameters:

  • outputs
    Post-synaptic neuron compartments to connect from the Astrocyte's spike generator

  • num
    The number of neuron compartments to connect to

  • connectionMask
    A connection mask (Numpy ndarray) with shape (num, 1) with values 0 or 1 to control whether some compartments from outputs are actually connected.

    If the default integer value 1 or any other integer is provided then a full connection mask is generated and used internally to connect the spike generator compartment to all of the post-synaptic neuron compartments (outputs) provided.

    (Default=1)

  • weight
    Weight(s) of the connection(s) from the spike generator compartment to each of the compartments in outputs. This can be used to influence the amount of control the Astrocyte may have on trigger spikes within each of the post-synaptic neuron compartments.

    If an integer is provided, all connections will have the integer weight as their weight respectively.

    A Numpy ndarray of shape (num, 1) can be provided to use varying weights across the different connections formed.

    (Default=30)

probe(probeConditions)

Retrieve a probe for a property of a particular compartment within the Astrocyte. You can provide a list of enum values to retrieve multiple probes.

Parameters:

  • probeConditions
    Either one value or a list of values indicating which property and which compartment to probe within the Astrocyte.

    All possible enum values are located under combra.ASTRO_SPIKE_RECEIVER_PROBE, combra.ASTRO_IP3_INTEGRATOR_PROBE, combra.ASTRO_SIC_GENERATOR_PROBE, combra.ASTRO_SPIKE_GENERATOR_PROBE with each compartment's properties as values within that probe class respectively.

    Example:

    import combra_loihi.api as combra
    
    probes['spike_receiver_spikes'] = astrocyte1.probe(combra.ASTRO_SPIKE_RECEIVER_PROBE.SPIKE)

Clone this wiki locally