Auryn simulator
v0.8.1-206-gb56e451
Plastic Spiking Neural Network Simulator
|
DelayConnection implements a SparseConnection with adjustable delays. More...
#include <DelayConnection.h>
Public Member Functions | |
DelayConnection (NeuronID rows, NeuronID cols) | |
The bare constructor for manual filling and constructing DelayConnection objects. More... | |
DelayConnection (SpikingGroup *source, NeuronGroup *destination, AurynWeight weight, AurynFloat sparseness=0.05, TransmitterType transmitter=GLUT, string name="DelayConnection") | |
The default constructor for DelayConnection. More... | |
virtual | ~DelayConnection () |
The default destructor. More... | |
virtual void | propagate () |
The required virtual propagate function for propagating spikes. More... | |
void | set_delay_steps (unsigned int delay) |
Sets the delay in in units of auryn_timestep which is added to all spikes from the src group. More... | |
void | set_delay (double delay=1e-3) |
Sets the delay in in units of seconds which is added to all spikes from the src group. More... | |
Public Member Functions inherited from auryn::SparseConnection | |
SparseConnection () | |
Empty constructor which should not be used – TODO should be deprecated at some point. More... | |
SparseConnection (const char *filename) | |
Load from wmat file constructor which should not be used – TODO should be deprecated at some point. More... | |
SparseConnection (NeuronID rows, NeuronID cols) | |
Deprecated constructor for manual filling. More... | |
SparseConnection (SpikingGroup *source, NeuronGroup *destination, const char *filename, TransmitterType transmitter=GLUT) | |
Deprecated constructor for loading from file. More... | |
SparseConnection (SpikingGroup *source, NeuronGroup *destination, TransmitterType transmitter=GLUT, string name="SparseConnection") | |
Constructor for manual filling. More... | |
SparseConnection (SpikingGroup *source, NeuronGroup *destination, AurynWeight weight, AurynDouble sparseness=0.05, TransmitterType transmitter=GLUT, string name="SparseConnection") | |
Default constructor which sets up a random sparse matrix with fixed weight between the source and destination group. More... | |
SparseConnection (SpikingGroup *source, NeuronGroup *destination, SparseConnection *con, string name="SparseConnection") | |
This constructor tries to clone a connection by guessing all parameters except source and destination from another connection instance. More... | |
SparseConnection (SpikingGroup *source, NeuronGroup *destination, AurynWeight weight, AurynDouble sparseness, NeuronID lo_row, NeuronID hi_row, NeuronID lo_col, NeuronID hi_col, TransmitterType transmitter=GLUT) | |
Sparse block constructor. More... | |
virtual | ~SparseConnection () |
The default destructor. More... | |
void | allocate_manually (AurynLong expected_size) |
Is used whenever memory has to be allocated manually. Automatically adjusts for number of ranks and for security margin. More... | |
AurynLong | estimate_required_nonzero_entires (AurynLong nonzero, double sigma=5.) |
This function estimates the required size of the nonzero entry buffer. More... | |
void | seed (NeuronID randomseed) |
This function seeds the pseudo random number generator for all random fill operatios. More... | |
virtual AurynWeight | get (NeuronID i, NeuronID j) |
Returns weight value of a given element if it exists. More... | |
virtual AurynWeight * | get_ptr (NeuronID i, NeuronID j) |
Returns pointer to given weight element if it exists. Returns NULL if element does not exist. More... | |
virtual AurynWeight | get_data (NeuronID i) |
Returns weight value of a given element referenced by index in the data array. More... | |
virtual void | set_data (NeuronID i, AurynWeight value) |
Sets weight value of a given element referenced by its index in the data array. More... | |
virtual void | set (NeuronID i, NeuronID j, AurynWeight value) |
Sets a single connection to value if it exists. More... | |
virtual void | set (std::vector< neuron_pair > element_list, AurynWeight value) |
Sets a list of connection to value if they exists. More... | |
void | random_data (AurynWeight mean, AurynWeight sigma) |
Synonym for random_data. More... | |
void | random_data_normal (AurynWeight mean, AurynWeight sigma) |
Set weights of all existing connections randomly using a normal distrubtion. More... | |
void | random_data_lognormal (AurynWeight m, AurynWeight s) |
Set weights of all existing connections randomly using a lognormal distribution. More... | |
void | init_random_binary (AurynFloat prob=0.5, AurynWeight wlo=0.0, AurynWeight whi=1.0) |
Initialize with random binary at wlo and whi. More... | |
void | random_col_data (AurynWeight mean, AurynWeight sigma) |
Sets weights in cols to the same value drewn from a Gaussian distribution. More... | |
void | set_block (NeuronID lo_row, NeuronID hi_row, NeuronID lo_col, NeuronID hi_col, AurynWeight weight) |
Sets all weights of existing connections in a block spanned by the first 4 parameters to the value given. More... | |
void | scale_block (NeuronID lo_row, NeuronID hi_row, NeuronID lo_col, NeuronID hi_col, AurynWeight alpha) |
Scale all weights of existing connections in a block spanned by the first 4 parameters to the value given. More... | |
virtual void | set_all (AurynWeight weight) |
Sets all weights of existing connections to the given value. More... | |
virtual void | scale_all (AurynFloat value) |
Scales all weights in the weight matrix with the given value. More... | |
virtual void | clip (AurynWeight lo, AurynWeight hi) |
Clip weights. More... | |
void | set_upper_triangular (AurynWeight weight) |
Sets weights in a upper triangular matrix. More... | |
virtual void | sparse_set_data (AurynDouble sparseness, AurynWeight value) |
Sets a sparse random subset of connection elements wight the given value. More... | |
void | connect_random (AurynWeight weight=1.0, AurynDouble sparseness=0.05, bool skip_diag=false) |
Connect src and dst SpikingGroup and NeuronGroup randomly with given sparseness. More... | |
void | connect_block_random (AurynWeight weight, AurynDouble sparseness, NeuronID lo_row, NeuronID hi_row, NeuronID lo_col, NeuronID hi_col, bool skip_diag=false) |
Underlying sparse fill method. More... | |
virtual void | finalize () |
Finalizes connection after random or manual initialization of the weights. More... | |
bool | push_back (NeuronID i, NeuronID j, AurynWeight weight) |
Pushes a single element to the ComplexMatrix. More... | |
AurynLong | get_nonzero () |
Returns number of nonzero elements in this SparseConnection. More... | |
void | put_pattern (type_pattern *pattern, AurynWeight strength, bool overwrite) |
Puts cell assembly to existing sparse weights. More... | |
void | put_pattern (type_pattern *pattern1, type_pattern *pattern2, AurynWeight strength, bool overwrite) |
Puts cell assembly or synfire pattern to existing sparse weights. More... | |
void | load_patterns (string filename, AurynWeight strength, int nb_max_patterns=10000, bool overwrite=false, bool chainmode=false) |
Reads first n patterns from a .pat file and adds them as Hebbian assemblies onto an existing weight matrix. More... | |
void | load_pre_post_patterns (std::string pre_file, std::string post_file, AurynWeight strength, int nb_max_patterns=10000, bool overwrite=false) |
Reads patterns from two files and connects them. More... | |
void | sanity_check () |
Quick an dirty function that checks if all units on the local rank are connected. More... | |
virtual AurynDouble | sum () |
Computes sum of all weight elements in the Connection. More... | |
virtual void | stats (AurynDouble &mean, AurynDouble &std) |
Computes mean and variance of weights in default weight matrix. More... | |
virtual void | stats (AurynDouble &mean, AurynDouble &std, NeuronID zid) |
Computes mean and variance of weights for matrix state zid. More... | |
bool | write_to_file (ForwardMatrix *m, string filename) |
Writes rank specific weight matrix on the same rank to a file. More... | |
virtual bool | write_to_file (string filename) |
Writes rank specific default weight matrix on the same rank to a file. More... | |
virtual bool | load_from_complete_file (string filename) |
Loads weight matrix from a single file. More... | |
virtual bool | load_from_file (string filename) |
Loads weight matrix from Matrix Market (wmat) file. More... | |
bool | load_from_file (ForwardMatrix *m, string filename, AurynLong data_size=0) |
Loads weight matrix from Matrix Market (wmat) file to specified weight matrix. More... | |
virtual void | set_min_weight (AurynWeight minimum_weight) |
Sets minimum weight (for plastic connections). More... | |
AurynWeight | get_min_weight () |
Gets minimum weight (for plastic connections). More... | |
virtual void | set_max_weight (AurynWeight maximum_weight) |
Sets maximum weight (for plastic connections). More... | |
AurynWeight | get_max_weight () |
Gets maximum weight (for plastic connections). More... | |
std::vector< neuron_pair > | get_block (NeuronID lo_row, NeuronID hi_row, NeuronID lo_col, NeuronID hi_col) |
Returns a vector of ConnectionsID of a block specified by the arguments. More... | |
std::vector< neuron_pair > | get_post_partners (NeuronID i) |
Returns a vector of ConnectionsID of postsynaptic parterns of neuron i. More... | |
std::vector< neuron_pair > | get_pre_partners (NeuronID j) |
Returns a vector of ConnectionsID of presynaptic parterns of neuron i. More... | |
Public Member Functions inherited from auryn::Connection | |
Connection () | |
Connection (NeuronID rows, NeuronID cols) | |
Connection (SpikingGroup *source, NeuronGroup *destination, TransmitterType transmitter=GLUT, std::string name="Connection") | |
virtual | ~Connection () |
void | set_size (NeuronID i, NeuronID j) |
void | set_name (std::string name) |
Set name of connection. More... | |
std::string | get_name () |
Returns name of connection. More... | |
std::string | get_file_name () |
Extracts the class name of the connection from the file name. More... | |
std::string | get_log_name () |
Returns a string which is the combination of file and connection name for logging. More... | |
AurynStateVector * | get_target_vector () |
Returns target state vector if one is defined. More... | |
NeuronID | get_m_rows () |
Get number of rows (presynaptic) in connection. More... | |
NeuronID | get_n_cols () |
Get number of columns (postsynaptic) in connection. More... | |
TransmitterType | get_transmitter () |
Returns transmitter type. More... | |
void | set_target (AurynWeight *ptr) |
Sets target state of this connection directly via a pointer. More... | |
void | set_target (AurynStateVector *ptr) |
Sets target state of this connection directly via a StateVector. More... | |
void | set_receptor (AurynStateVector *ptr) |
Same as set_target. More... | |
void | set_transmitter (AurynStateVector *ptr) |
Same as set_target. More... | |
void | set_transmitter (TransmitterType transmitter) |
Sets target state of this connection for a given receptor as one of Auryn's default transmitter types. More... | |
void | set_receptor (string state_name) |
Sets target state of this connection directly the name of a state vector. More... | |
void | set_target (string state_name) |
Same as set_receptor. More... | |
void | set_transmitter (string state_name) |
Same as set_receptor, but DEPRECATED. More... | |
void | set_source (SpikingGroup *source) |
Sets source SpikingGroup of this connection. More... | |
SpikingGroup * | get_source () |
Returns pointer to the presynaptic group. More... | |
void | set_destination (NeuronGroup *source) |
Sets destination SpikingGroup of this connection. More... | |
NeuronGroup * | get_destination () |
Returns pointer to the postsynaptic group. More... | |
virtual void | evolve () |
Evolve method to update internal connection state. Called by System run method. More... | |
void | conditional_propagate () |
DEPRECATED. (Such connections should not be registered in the first place) Calls propagate only if the postsynaptic NeuronGroup exists on the local rank. More... | |
Trace * | get_pre_trace (const AurynDouble tau) |
Returns a pointer to a presynaptic trace object. More... | |
Trace * | get_post_trace (const AurynDouble tau) |
Returns a pointer to a postsynaptic trace object. More... | |
Trace * | get_post_state_trace (const string state_name, const AurynDouble tau, const AurynDouble jump_size=0.0) |
Returns a pointer to a postsynaptic state trace object. More... | |
void | transmit (const NeuronID id, const AurynWeight amount) |
Default way to transmit a spike to a postsynaptic partner. More... | |
void | targeted_transmit (SpikingGroup *target_group, AurynStateVector *target_state, const NeuronID id, const AurynWeight amount) |
Transmits a spike to a given target group and state. More... | |
void | safe_transmit (NeuronID id, AurynWeight amount) |
Same as transmit but first checks if the target neuron exists and avoids segfaults that way (but it's also slower). More... | |
SpikeContainer * | get_pre_spikes () |
Supplies pointer to SpikeContainer of all presynaptic spikes. More... | |
SpikeContainer * | get_post_spikes () |
Returns pointer to SpikeContainer for postsynaptic spikes on this node. More... | |
void | add_number_of_spike_attributes (int x) |
Set up spike delay to accomodate x additional spike attributes. More... | |
AurynFloat | get_spike_attribute (const NeuronID i, const int attribute_id=0) |
Returns spike attribute belonging to the spike at position i in the get_spikes() SpikeContainer. More... | |
Protected Member Functions | |
void | virtual_serialize (boost::archive::binary_oarchive &ar, const unsigned int version) |
void | virtual_serialize (boost::archive::binary_iarchive &ar, const unsigned int version) |
Protected Member Functions inherited from auryn::SparseConnection | |
void | virtual_serialize (boost::archive::binary_oarchive &ar, const unsigned int version) |
void | virtual_serialize (boost::archive::binary_iarchive &ar, const unsigned int version) |
void | free () |
void | allocate (AurynLong bufsize) |
std::vector< type_pattern > | load_pattern_file (string filename, int nb_max_patterns) |
Reads patterns from a .pat file and returns a vector with the patterns. More... | |
Protected Member Functions inherited from auryn::Connection | |
void | init (TransmitterType transmitter=GLUT) |
Additional Inherited Members | |
Public Attributes inherited from auryn::SparseConnection | |
bool | patterns_ignore_gamma |
Switch that toggles for the load_patterns function whether or not to use the intensity (gamma) value. Default is false. More... | |
NeuronID | patterns_every_pre |
The every_pre parameter allows to skip presynaptically over pattern IDs when loading patterns. Default is 1. This can be useful to when loading patterns into the exc->inh connections and there significantly less inhibitory cells than exc ones. More... | |
NeuronID | patterns_every_post |
The every_post parameter allows to skip postsynaptically over pattern IDs when loading patterns. Default is 1. This can be useful to when loading patterns into the exc->inh connections and there significantly less inhibitory cells than exc ones. More... | |
bool | wrap_patterns |
Switch that toggles the behavior when loading a pattern to wrap neuron IDs back onto existing cells via the modulo function. More... | |
ForwardMatrix * | w |
A pointer that points per default to the ComplexMatrix that stores the connectinos. More... | |
Public Attributes inherited from auryn::Connection | |
SpikingGroup * | src |
Pointer to the source group of this connection. More... | |
NeuronGroup * | dst |
Pointer to the destination group of this connection. More... | |
Protected Attributes inherited from auryn::SparseConnection | |
AurynWeight | wmin |
AurynWeight | wmax |
bool | skip_diagonal |
Protected Attributes inherited from auryn::Connection | |
TransmitterType | trans |
AurynStateVector * | target_state_vector |
AurynFloat * | target |
A more direct reference on the first element of the target_state_vector. More... | |
NeuronID | number_of_spike_attributes |
Number of spike attributes to expect with each spike transmitted through this connection. More... | |
NeuronID | spike_attribute_offset |
Stores spike attribute offset in attribute array. More... | |
Static Protected Attributes inherited from auryn::SparseConnection | |
static boost::mt19937 | sparse_connection_gen = boost::mt19937() |
DelayConnection implements a SparseConnection with adjustable delays.
DelayConnection adds a delay to spikes from the src group. The delays of DelayConnection are added to the delays already present in SpikingGroup. Moreover, the delays are connection specific and can be interpreted as dendritic delays. The minimum possible delay is one timestep.
The bare constructor for manual filling and constructing DelayConnection objects.
You should only use this if you know what you are doing.
DelayConnection::DelayConnection | ( | SpikingGroup * | source, |
NeuronGroup * | destination, | ||
AurynWeight | weight, | ||
AurynFloat | sparseness = 0.05 , |
||
TransmitterType | transmitter = GLUT , |
||
std::string | name = "DelayConnection" |
||
) |
The default constructor for DelayConnection.
|
virtual |
|
virtual |
The required virtual propagate function for propagating spikes.
Reimplemented from auryn::SparseConnection.
void DelayConnection::set_delay | ( | double | delay = 1e-3 | ) |
Sets the delay in in units of seconds which is added to all spikes from the src group.
Set delay in seconds
void DelayConnection::set_delay_steps | ( | unsigned int | delay | ) |
Sets the delay in in units of auryn_timestep which is added to all spikes from the src group.
Set delay in time steps
|
inlineprotectedvirtual |
Serialization function for saving the Connection state. Implement in derived classes to save additional information.
Reimplemented from auryn::Connection.
|
inlineprotectedvirtual |
Serialization function for loading the Connection state. Implement in derived classes to save additional information.
Reimplemented from auryn::Connection.