norse.torch.functional.lift

norse.torch.functional.lift(activation, p=None)[source]

Creates a lifted version of the given activation function which applies the activation function in the temporal domain. The returned callable can be applied later as if it was a regular activation function, but the input is now assumed to be a tensor whose first dimension is time.

Parameters:
activation (Callable[[torch.Tensor, Any, Any], Tuple[torch.Tensor, Any]]):

The activation function that takes an input tensor, an optional state, and an optional parameter object and returns a tuple of (spiking output, neuron state). The returned spiking output includes the time domain.

p (Any): An optional parameter object to hand to the activation function.

Returns:

A :class:`.Callable`_ that, when applied, evaluates the activation function N times, where N is the size of the outer (temporal) dimension. The application will provide a tensor of shape (time, …).