Classifier

Classifier modules.

class lava.lib.dl.slayer.classifier.MovingWindow(time_window, mode='probability', eps=1e-06)

Moving window based classifier. It produces a timeseries of classification/prediction based on moving window estimate.

\text{rate: } {\bf r}(t)
    &= \frac{1}{W}\int_{t-W}^T {\bf s}(t)\,\text dt \

\text{confidence: } {\bf c}(t) &= \begin{cases}
    \frac{{\bf r}(t)}{{\bf r}(t)^\top {\bf1}}
        &\text{ if mode=probability} \\
    \frac{\exp({\bf r}(t))}{\exp({\bf r}(t))^\top \bf1}
        &\text{ if mode=softmax} \\
    \log\left(
        \frac{\exp({\bf r}(t))}{\exp({\bf r}(t))^\top \bf1}
    \right) &\text{ if mode=softmax}
\end{cases} \

\text{prediction: } p(t) &= \arg\max({\bf r}(t))

Parameters
  • time_window (int) – size of moving window.

  • mode (str) – confidence mode. One of ‘probability’|’softmax’|’logsoftmax’. Defaults to ‘probability’.

  • eps (float) – infinitesimal value. Defaults to 1e-6.

Examples

>>> classifier = MovingWindow(20)
>>> prediction = classifier(spike)
confidence(spike, mode=None)

Moving window confidence.

Parameters
  • spike (torch tensor) – spike input.

  • mode (str) – confidence mode. If it is None, the object’s mode is used. Defaults to None.

Returns

output confidence.

Return type

torch tensor

Examples

>>> confidence = classifier.confidence(spike)
forward(spike)
predict(spike)

Moving window prediction.

Parameters

spike (torch tensor) – spike input.

Returns

output prediction.

Return type

torch tensor

Examples

>>> prediction = classifier.predict(spike)
rate(spike)

Moving window spike rate.

Parameters

spike (torch tensor) – spike input.

Returns

spike rate.

Return type

torch tensor

Examples

>>> rate = classifier.rate(spike)
class lava.lib.dl.slayer.classifier.Rate

Global rate based classifier. It considers the event rate of the spike train over the entire duration as the confidence score.

\text{rate: } {\bf r} &= \frac{1}{T}\int_T{\bf s}(t)\,\text dt\

\text{confidence: } {\bf c} &= \begin{cases}
    \frac{\bf r}{\bf r^\top 1}
        &\text{ if mode=probability} \\
    \frac{\exp({\bf r})}{\exp({\bf r})^\top \bf1}
        &\text{ if mode=softmax} \\
    \log\left(
        \frac{\exp({\bf r})}{\exp({\bf r})^\top \bf1}
    \right)
        &\text{ if mode=softmax}
\end{cases} \\

\text{prediction: } p &= \arg\max(\bf r)

Examples

>>> classifier = Rate
>>> prediction = classifier(spike)
static confidence(spike, mode='probability', eps=1e-06)

Given spike train, returns the confidence of the output class based on spike rate.

Parameters
  • spike (torch tensor) – spike tensor. First dimension is assumed to be batch, and last dimension is assumed to be time. Spatial dimensions are collapsed by default.

  • mode (str) – confidence mode. One of ‘probability’|’softmax’|’logsoftmax’. Defaults to ‘probability’.

  • eps (float) – infinitesimal value. Defaults to 1e-6.

Returns

confidence.

Return type

torch tensor

Examples

>>> confidence = classifier.confidence(spike)
>>> confidence = Rate.confidence(spike)
forward(spike)
static predict(spike)

Given spike train, predicts the output class based on spike rate.

Parameters

spike (torch tensor) – spike tensor. First dimension is assumed to be batch, and last dimension is assumed to be time. Spatial dimensions are collapsed by default.

Returns

indices of max spike activity.

Return type

torch tensor

Examples

>>> prediction = classifier.predict(spike)
>>> prediction = Rate.predict(spike)
static rate(spike)

Given spike train, returns the output spike rate.

Parameters

spike (torch tensor) – spike tensor. First dimension is assumed to be batch, and last dimension is assumed to be time. Spatial dimensions are collapsed by default.

Returns

spike rate.

Return type

torch tensor

Examples

>>> rate = classifier.rate(spike)
>>> rate = Rate.rate(spike)