hxtorch.spiking.functional.superspike.SuperSpike

class hxtorch.spiking.functional.superspike.SuperSpike(*args, **kwargs)

Bases: torch.autograd.function.Function

Define Surrogate Gradient ‘SuperSpike’ (negative side of Fast Sigmoid) See: https://arxiv.org/abs/1705.11146

__init__(*args, **kwargs)

Initialize self. See help(type(self)) for accurate signature.

Methods

backward(ctx, grad_output)

Implements surrogate gradient ‘SuperSpike’ for backward.

forward(ctx, input, alpha)

Forward function, generating spikes at positions > 0.

Attributes

static backward(ctx, grad_output: torch.Tensor)Tuple[Optional[torch.Tensor], ]

Implements surrogate gradient ‘SuperSpike’ for backward.

Parameters

grad_output – Back-propagated gradient.

Returns

SuperSpike gradient multiplied to back-propagated gradient.

static forward(ctx, input: torch.Tensor, alpha: float)torch.Tensor

Forward function, generating spikes at positions > 0.

Parameters
  • input – Tensor holding v_mem - v_th, of > 0 a spike at the corresponding entry is generated. Saved for backward.

  • alpha – Parameter controlling the slope of the surrogate derivative. Saved for backward.

Returns

A boolean tensor holding True at the entries for neurons emitting a spike.