Supplementary Material for: On the Accuracy and Computational Cost of Spiking Neuron Implementation

Published: 11 October 2019| Version 1 | DOI: 10.17632/b3y8pktb6h.1
Contributors:
Sergio Valadez-Godínez, Humberto Sossa, Raúl Santiago-Montero

Description

This data contains the Supplementary material for the paper "On the Accuracy and Computational Cost of Spiking Neuron Implementation." This is divided into five folders: 1) Source code, 2) Raw data, 3) Calculations, 4) Tables, and 5) Figures. The Source code folder has the script files written in Python 3.7.3. There are two sub-folders inside this folder separating the scripts into constant and random input current tests, respectively. Each sub-folder has a separate Python script that performs a benchmark test for each Spiking Neuron (SN) model. The Raw data folder collects the data generated by executing the scripts in the Source code folder and by following the instructions in the Testing procedure section of the paper. This stores the raw data for several SNs, firing frequencies, and input currents. This folder has a sub-folder with several files recording the random input currents used in the benchmark tests. The Raw data folder also has two sub-folders with the benchmark test results, each for a specific stimulation current type. The Benchmark test sub-folders give the CPU execution time, the SCF (Spike Coincidence Factor), the VCF (Voltage Coincidence Factor), the last spike displacement, and the firing frequency for each Numerical Method (NM) and time step. Other four sub-folders are containing the spike-timing and voltage time course data. These data are separated into constant and random input currents and NM and time step. The Calculations folder gives two files in .xlsx format with several estimates used in the paper. These files collect the CPU time, SCF, VCF, last spike displacement, and firing frequency from Raw data folder and compute the CCF (Computational Cost Factor) and GPF (Global Performance Factor) for several SNs and firing frequencies. Also, these files calculate the average and increment/decrement percent in FLOPS, CPU time, CCF, SCF, VCF, last spike displacement, and GPF among several SNs and NMs. Furthermore, these files examine the balanced, lower limit, upper limit, Skocik-Long, and Izhikevich configurations mentioned in the paper. Fourth and fifth folders contain the supplementary tables and figures, respectively, referenced in the article.

Files

Steps to reproduce

It is needed to have installed Python 3.7.3 to run the files in the Source code folder. It is recommended downloading and installing the Anaconda3-2019.03 distribution for Linux (https://www.anaconda.com/distribution/), which has the required libraries. For performing a benchmark test for a particular frequency, the input current (Io) in the Python scripts must be changed. Please refer to Table 2 in the article for the input current values. Other parameters also can be adjusted, such as the simulation time window (T), the spike-timing precision (tSpikePrecision), the voltage precision (VPrecision), the initial time condition (to), the initial voltage condition (Vo), and the parameters of the SN model in particular. Each Python script (except the Generating_random_current.py file) in the Source code folder generates the following files in CSV (Comma-Separated Values) format: spiking_neuron-CPUtime.csv spiking_neuron-displacement.csv spiking_neuron-frequency.csv spiking_neuron-SCF.csv spiking_neuron-VCF.csv Spike-Timing-spiking_neuron-numerical_method-time_step.csv Voltage-spiking_neuron-numerical_method-time_step.csv where spiking_neuron is the SN acronym (LIF=Leaky Integrate-and-Fire, IZH=Izhikevich model, HH=Hodgkin-Huxley model, and HHT=Hodgkin-Huxley model using tables), numerical_method is the NM acronym (FE=Forward Euler, EE=Exponential Euler, and RK4=Fourth-Order Runge-Kutta method), and time_step is the time step (0.0001, 0.001, 0.01, 0.1, and 1 millisecond). The script Generating_random_current.py in the Tests for random input current sub-folder must be run before executing the other scripts in that sub-folder. Subsequently, the reference to the random current file data must be changed in the Python script.

Institutions

Tecnologico Nacional de Mexico, Instituto Politecnico Nacional Centro de Investigacion en Computacion, Instituto Tecnologico de Leon, Universidad Virtual del Estado de Guanajuato

Categories

Artificial Neural Networks, Computer Simulation, Modelling

Licence