graph LR
Data_Ingestion_Preprocessing["Data Ingestion & Preprocessing"]
Spike_Encoding_Layer["Spike Encoding Layer"]
SNN_Core_Neuron_Models["SNN Core Neuron Models"]
Training_Optimization_Engine["Training & Optimization Engine"]
Performance_Evaluation_Probing["Performance Evaluation & Probing"]
Visualization_Tools["Visualization Tools"]
Model_Interoperability_NIR_["Model Interoperability (NIR)"]
Data_Ingestion_Preprocessing -- "feeds Processed Data to" --> Spike_Encoding_Layer
Spike_Encoding_Layer -- "provides Spike Trains input to" --> SNN_Core_Neuron_Models
SNN_Core_Neuron_Models -- "provides Spikes/Membrane Potentials to" --> Training_Optimization_Engine
Training_Optimization_Engine -- "sends Parameter Updates to" --> SNN_Core_Neuron_Models
SNN_Core_Neuron_Models -- "provides Spikes/Membrane Potentials, Metrics to" --> Performance_Evaluation_Probing
SNN_Core_Neuron_Models -- "provides Spike Data, Membrane Potentials to" --> Visualization_Tools
Model_Interoperability_NIR_ -- "exchanges Model Data (Import/Export) with" --> SNN_Core_Neuron_Models
SNN_Core_Neuron_Models -- "exchanges Model Data (Import/Export) with" --> Model_Interoperability_NIR_
click Data_Ingestion_Preprocessing href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/snntorch/Data_Ingestion_Preprocessing.md" "Details"
click Spike_Encoding_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/snntorch/Spike_Encoding_Layer.md" "Details"
click SNN_Core_Neuron_Models href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/snntorch/SNN_Core_Neuron_Models.md" "Details"
click Training_Optimization_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/snntorch/Training_Optimization_Engine.md" "Details"
click Model_Interoperability_NIR_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/snntorch/Model_Interoperability_NIR_.md" "Details"
The snntorch library provides a comprehensive framework for building, training, and analyzing Spiking Neural Networks (SNNs). The architecture is modular, starting with Data Ingestion & Preprocessing to handle raw data, which then feeds into the Spike Encoding Layer to convert data into spike trains. These spike trains are processed by the SNN Core Neuron Models, the fundamental computational units. The Training & Optimization Engine facilitates the learning process by applying various backpropagation methods and loss functions. Performance Evaluation & Probing offers tools for assessing model performance and inspecting internal states. Finally, Visualization Tools aid in understanding and presenting SNN behavior, while the Model Interoperability (NIR) component ensures compatibility with other neuromorphic frameworks.
Data Ingestion & Preprocessing [Expand]
Handles the loading, transformation, and initial processing of neuromorphic datasets and other input data, preparing it for SNNs.
Related Classes/Methods:
snntorch.spikevision.events_timeslicessnntorch.spikevision.neuromorphic_datasetsnntorch.spikevision.spikedata
Spike Encoding Layer [Expand]
Converts various forms of input data (e.g., images, sensor readings) into spike trains, the native input format for SNNs.
Related Classes/Methods:
snntorch.spikegen.ratesnntorch.spikegen.latency:154-330snntorch.spikegen.targets_convert:714-872snntorch.spikegen.targets_rate:875-1134snntorch.spikegen.targets_latency:1402-1529
SNN Core Neuron Models [Expand]
Implements a diverse range of spiking neuron models (e.g., Leaky Integrate-and-Fire, Alpha, Synaptic) that serve as the fundamental computational units of SNNs.
Related Classes/Methods:
snntorch._neurons.lapicquesnntorch._neurons.leakysnntorch._neurons.alphasnntorch._neurons.rleakysnntorch._neurons.rsynapticsnntorch._neurons.sconv2dlstmsnntorch._neurons.slstmsnntorch._neurons.synapticsnntorch._neurons.neurons
Training & Optimization Engine [Expand]
Provides algorithms and utilities for training SNNs, including various backpropagation methods and specialized loss functions.
Related Classes/Methods:
snntorch.backprop.BPTT:377-487snntorch.backprop.RTRL:490-600snntorch.backprop.TBPTT:19-374snntorch.functional.loss
Offers tools to measure the performance of SNNs (e.g., accuracy) and to inspect internal states during simulation or training.
Related Classes/Methods:
snntorch.functional.acc.accuracy_rate:5-27snntorch.functional.acc.accuracy_temporal:30-70snntorch.functional.probe
Provides utilities for plotting and animating spike activity, membrane potentials, and other SNN-related data for analysis and presentation.
Related Classes/Methods:
snntorch.spikeplot.animator:15-87snntorch.spikeplot.spike_count:123-269snntorch.spikeplot.animate:453-460snntorch.spikeplot.snap:440-451
Model Interoperability (NIR) [Expand]
Facilitates the exchange and conversion of SNN models with other neuromorphic frameworks using the Neuromorphic Intermediate Representation (NIR) standard.
Related Classes/Methods: