Auryn simulator
v0.8.1-206-gb56e451
Plastic Spiking Neural Network Simulator
|
Reads spikes from a ras file and emits them as SpikingGroup in a simulation. More...
#include <FileInputGroup.h>
Public Member Functions | |
FileInputGroup (NeuronID n, string filename, bool loop=false, AurynFloat delay=0.0) | |
Default constructor. More... | |
FileInputGroup (NeuronID n) | |
Constructor which does not load spikes. More... | |
virtual | ~FileInputGroup () |
virtual void | evolve () |
Virtual pure evolve function which needs to be implemented by derived classes. More... | |
void | set_loop_grid (AurynDouble grid_size) |
Aligned loop blocks to a temporal grid of this size. More... | |
void | load_spikes (std::string filename) |
Load spikes from file. More... | |
void | add_spike (double spiketime, NeuronID neuron_id=0) |
Adds a spike to the buffer manually and then temporally sorts the buffer. More... | |
void | sort_spikes () |
Sorts spikes by time. More... | |
Public Member Functions inherited from auryn::SpikingGroup | |
void | add_state_vector (std::string key, AurynStateVector *state_vector) |
Adds a state vector passed as an argument to the dictinary. More... | |
void | remove_state_vector (std::string key) |
Removes a state vector passed as an argument to the dictinary. More... | |
AurynStateVector * | find_state_vector (std::string key) |
Returns existing state vector by name or NULL if it does not exist. More... | |
AurynStateVector * | get_state_vector (std::string key) |
Creates a new or returns an existing state vector by name. More... | |
AurynStateVector * | get_existing_state_vector (std::string key) |
Returns an existing state with the supplied name. More... | |
AurynStateVector * | create_state_vector (std::string key) |
Creates a new state vector and throws an exception if a vector with the same name exists. More... | |
AurynState * | get_state_variable (std::string key) |
Creates a new group-wide state variable or returns an existing group-wide variable by name then returns a pointer to it. More... | |
void | randomize_state_vector_gauss (std::string state_vector_name, AurynState mean, AurynState sigma, int seed=12239) |
Randomizes the content of a state vector with Gaussian random numbers. Seeding is MPI save. More... | |
SpikingGroup (NeuronID size, NodeDistributionMode mode=AUTO) | |
Default constructor. More... | |
virtual | ~SpikingGroup () |
Default destructor. More... | |
virtual void | evolve_traces () |
Evolves traces. More... | |
void | set_name (std::string s) |
Set connection name. More... | |
std::string | get_name () |
Retrieves the groups name. 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... | |
void | inc_num_spike_attributes (int x) |
Instructs SpikingGroup to increase the number of spike attributes by x. More... | |
int | get_num_spike_attributes () |
void | conditional_evolve () |
Conditional evolve functino which is called by System. More... | |
unsigned int | get_locked_rank () |
Returns locked rank for SpikingGroups which are not distributed across all ranks. More... | |
unsigned int | get_locked_range () |
Returns locked range of ranks for SpikingGroups which are not distributed across all ranks. More... | |
SpikeContainer * | get_spikes () |
Returns pointer to a spike container that contains spikes which arrive in this timestep from all neurons in this group. More... | |
SpikeContainer * | get_spikes_immediate () |
Returns pointer to SpikeContainer of spikes generated during the last evolve() step. More... | |
AttributeContainer * | get_attributes () |
Returns pointer to Attributecontainer for usage in propagating Connection objects. Same as get_spikes_immediate(), however might be overwritten to contain Spikes that have been delayed. More... | |
AttributeContainer * | get_attributes_immediate () |
Returns pointer to Attributecontainer of spikes generated during the last evolve() step. More... | |
NeuronID | get_size () |
Returns the size of the group. More... | |
NeuronID | get_pre_size () |
Returns the size of the group. More... | |
NeuronID | calculate_rank_size (int rank=-1) |
Determines rank size and stores it in local variable. More... | |
NeuronID | get_rank_size () |
Returns the size on this rank. More... | |
NeuronID | get_post_size () |
Returns the size on this rank. More... | |
void | set_clock_ptr (AurynTime *clock) |
bool | evolve_locally () |
Returns true if the calling instance has units which are integrated on the current rank. More... | |
NeuronID | get_uid () |
Get the unique ID of the class. More... | |
Trace * | get_pre_trace (AurynFloat x) |
Returns a pre trace with time constant x. More... | |
void | add_pre_trace (Trace *tr) |
Adds trace to pretrace stack of a connection. More... | |
Trace * | get_post_trace (AurynFloat x) |
Returns a post trace with time constant x. More... | |
void | add_post_trace (Trace *tr) |
Adds trace to posttrace stack of a connection. More... | |
void | push_spike (NeuronID spike) |
Pushes a local NeuronID as spike into the axonal SpikeDelay buffer. More... | |
void | push_attribute (AurynFloat attrib) |
Pushes a spike attribute into the axonal SpikeDelay buffer. More... | |
void | clear_spikes () |
Clears all spikes stored in the delays which is useful to reset a network during runtime. More... | |
Trace * | get_post_state_trace (std::string state_name="mem", AurynFloat tau=10e-3, AurynFloat b=0.0) |
Returns a post trace of a neuronal state variable e.g. the membrane potential with time constant tau. More... | |
Trace * | get_post_state_trace (AurynStateVector *state, AurynFloat tau=10e-3, AurynFloat b=0.0) |
Returns a post trace of a neuronal state variable specified by pointer. More... | |
void | set_delay (int d) |
Sets axonal delay for this SpikingGroup. More... | |
virtual bool | write_to_file (const char *filename) |
Writes current states of SpikingGroup to human-readible textfile if implemented in derived class. More... | |
virtual bool | load_from_file (const char *filename) |
Reads current states of SpikingGroup to human-readible textfile if implemented in derived class. More... | |
NeuronID | ranksize () |
Returns size (num of neurons) on the current rank. More... | |
NeuronID | global2rank (NeuronID i) |
Converts global NeuronID within the SpikingGroup to the local NeuronID on this rank. More... | |
NeuronID | rank2global (NeuronID i) |
Converts local NeuronID from the local rank to a global NeuronID. More... | |
bool | localrank (NeuronID i) |
Checks if the global NeuronID i is integrated on this MPI rank. More... | |
NeuronID | get_vector_size () |
Rank size but rounded up to multiples of 4 (or potentially some other and larger number in future versions) for SSE compatibility. More... | |
Public Attributes | |
bool | playinloop |
Switch that activates the loop mode of FileInputGroup when set to true. More... | |
AurynTime | time_delay |
Time delay after each replay of the input pattern in loop mode (default 0s) More... | |
Public Attributes inherited from auryn::SpikingGroup | |
SpikeDelay * | delay |
bool | active |
Toggles group active. More... | |
std::map< std::string, AurynStateVector * > | state_vectors |
std::map< std::string, AurynState > | state_variables |
Additional Inherited Members | |
Protected Member Functions inherited from auryn::SpikingGroup | |
virtual void | load_input_line (NeuronID i, const char *buf) |
virtual std::string | get_output_line (NeuronID i) |
virtual void | virtual_serialize (boost::archive::binary_oarchive &ar, const unsigned int version) |
Implementatinon of serialize function for writing. More... | |
virtual void | virtual_serialize (boost::archive::binary_iarchive &ar, const unsigned int version) |
Implementatinon of serialize function for reading. More... | |
void | free () |
Frees potentially allocated memory. More... | |
Protected Attributes inherited from auryn::SpikingGroup | |
std::vector< Trace * > | pretraces |
Pretraces. More... | |
std::vector< Trace * > | posttraces |
Posttraces. More... | |
std::vector< Trace * > | post_state_traces |
Post state traces. More... | |
std::vector< AurynFloat > | post_state_traces_spike_biases |
std::vector< AurynStateVector * > | post_state_traces_states |
std::string | group_name |
Identifying name for object. More... | |
NeuronID | size |
Stores the size of the group. More... | |
NeuronID | rank_size |
Stores the size of the group on this rank. More... | |
SpikeContainer * | spikes |
SpikeContainers to store spikes produced during one step of evolve. More... | |
AttributeContainer * | attribs |
Static Protected Attributes inherited from auryn::SpikingGroup | |
static AurynTime * | clock_ptr = NULL |
Reads spikes from a ras file and emits them as SpikingGroup in a simulation.
FileInputGroup first reads the entire ras file into memory and emits the spikes then during the simulation without file access. It supports looping over the input spikes by setting the loop argument with the constructor to true.
FileInputGroup::FileInputGroup | ( | NeuronID | n, |
std::string | filename, | ||
bool | loop = false , |
||
AurynFloat | delay = 0.0 |
||
) |
Default constructor.
FileInputGroup::FileInputGroup | ( | NeuronID | n | ) |
Constructor which does not load spikes.
Use this constructor if you want to init the group without a filename containing spikes. Spikes can be added after initialization by calling load_spikes(filename) or by adding spikes one by one using add_spike(spiketime, neuron_id).
void FileInputGroup::add_spike | ( | double | spiketime, |
NeuronID | neuron_id = 0 |
||
) |
Adds a spike to the buffer manually and then temporally sorts the buffer.
spiketime | the spike time |
neuron_id | the neuron you want to spike with neuron_id < size of the group |
|
virtual |
Virtual pure evolve function which needs to be implemented by derived classes.
The evolve function is called during simulations in every timestep by the System class. It updates the internal state of the spiking group and pushes spikes which are generated in this timestep to the axonal output delay (SpikeDelay).
Implements auryn::SpikingGroup.
void FileInputGroup::load_spikes | ( | std::string | filename | ) |
Load spikes from file.
void FileInputGroup::set_loop_grid | ( | AurynDouble | grid_size | ) |
Aligned loop blocks to a temporal grid of this size.
The grid is applied after the delay. It's mostly there to facilitate the synchronization of certain events or readouts. If no grid is defined the last input spike time will define the end of the loop window (which often could be a fractional time).
void FileInputGroup::sort_spikes | ( | ) |
Sorts spikes by time.
Spikes need to be sorted befure a run otherwise the behavior of this SpikingGroup is undefined
bool auryn::FileInputGroup::playinloop |
Switch that activates the loop mode of FileInputGroup when set to true.
AurynTime auryn::FileInputGroup::time_delay |
Time delay after each replay of the input pattern in loop mode (default 0s)