IFNet#

class dpeeg.models.IFNet.IFNet(nCh: int, nTime: int, nCls: int, F: int = 64, C: int = 63, radix: int = 2, P: int = 125, dropout: float = 0.5)[source]#

IFNet: An Interactive Frequency Convolutional Neural Network for Enhancing Motor Imagery Decoding From EEG (IFNet).

Inspired by the concept of cross-frequency coupling and its correlation with different behavioral tasks, IFNet [1] explores cross-frequency interactions for enhancing representation of MI characteristics. IFNet first extracts spectro-spatial features in low and high-frequency bands, respectively. Then the interplay between the two bands is learned using an element-wise addition operation followed by temporal average pooling. Combined with repeated trial augmentation as a regularizer, IFNet yields spectro-spatiotemporally robust features for the final MI classification.

Parameters:
  • nCh (int) – Number of electrode channels.

  • nTime (int) – Number of data sampling points. For example, a 4-second data input with a sampling rate of 250 Hz is 1000.

  • nCls (int) – Number of classification categories.

  • F (int) – Number of spectro-spatial filters.

  • C (int) – Spectro-spatial filter kernel size.

  • radix (int) – Number of cross-frequency domains.

  • P (int) – Pooling kernel size.

  • dropout (float) – Dropout rate.

References

forward(x)[source]#

Forward pass function that processes the input EEG data and produces the decoded results.

Parameters:

x (Tensor) – Input EEG data, shape (batch_size, nCh * radix, nTime).

Returns:

cls_prob – Predicted class probability, shape (batch_size, nCls).

Return type:

Tensor

class dpeeg.models.IFNet.IFNetAdamW(net: Module, **kwargs)[source]#

Customized AdamW Optimizer for IFNet.

IFNetAdamW optimizer allows bias and weights based on certain parameters to not decay.

Parameters:

net (IFNet) – IFNet model instance.