qualia_plugin_snn.learningframework.SpikingJellyTimeStepsInData module
Provide the SpikingJelly single-step with timesteps in input data learningframework module.
- class qualia_plugin_snn.learningframework.SpikingJellyTimeStepsInData.SpikingJellyTimeStepsInData[source]
Bases:
SpikingJelly
SpikingJelly single-step with timesteps in data LearningFramework implementation extending SpikingJelly single-step.
- class TrainerModule[source]
Bases:
TrainerModule
SpikingJelly single-step with timesteps in data TrainerModule extending SpikingJelly single-step TrainerModule.
- apply_dataaugmentation(batch: tuple[Tensor, Tensor], dataaugmentation: DataAugmentationPyTorch) tuple[Tensor, Tensor] [source]
Call a dataaugmentation module on the current batch.
If the dataaugmentation module is not a
qualia_plugin_snn.dataaugmentation.pytorch.DataAugmentationPyTorchTimeStepsInData
, or ifqualia_plugin_snn.dataaugmentation.pytorch.DataAugmentationPyTorchTimeStepsInData.collapse_timesteps
isTrue
, then the timestep dimension is automatically merged with the batch dimension in order to support existing non-timestep-aware Qualia-Core dataaugmentation modules transparently.
- forward(x: Tensor) Tensor [source]
Forward pass for a Spiking Neural Network model with timesteps in input data in single-step mode.
First calls SpikingJelly’s reset on the model to reset neurons potentials. Call
qualia_plugin_snn.learningmodel.pytorch.SNN.SNN.forward()
for each timestep of the input data. Finally, average the output of the model over the timesteps.- Parameters:
x (Tensor) – Input data with timestep dimension in [N, T, C, S] or [N, T, C, H, W] order
- Returns:
Output predictions
- Raises:
ValueError – when the input data does not have the correct number of dimenions or the timestep dimension does not match
qualia_plugin_snn.learningmodel.pytorch.SNN.SNN.timesteps
- Return type:
- static channels_last_to_channels_first(x: ndarray[Any, Any]) ndarray[Any, Any] [source]
Channels last to channels first conversion with consideration of timestep dimension.
For 2D data with timestep: [N, T, H, W, C] → [N, T, C, H, W]
For 1D data with timestep: [N, T, S, C] → [N, T, C, S]
- static channels_first_to_channels_last(x: ndarray[Any, Any]) ndarray[Any, Any] [source]
Channels first to channels last conversion with consideration of timestep dimension.
For 2D data with timestep: [N, T, C, H, W] → [N, T, H, W, C]
For 1D data with timestep: [N, T, C, S] → [N, T, S, C]