Chambon2018#

This page documents the Chambon2018Net architecture, published here. It encodes each 30-second epoch independently (via braindecode’s SleepStagerChambon2018), then concatenates the per-epoch features across the sequence to classify the central epoch.

Train it with the CLI:

train --model physioex.models.chambon2018:Chambon2018Net \
      --dataset hmc --channels EEG EOG EMG --pipelines time_domain
class physioex.models.chambon2018.Chambon2018Net(n_classes=5, in_channels=1, sf=100, n_times=3000, dropout=0.25)[source]

Bases: Module

Chambon et al. (2018) sleep staging network.

Encodes each epoch independently via braindecode’s SleepStagerChambon2018, then concatenates all L epoch features and classifies the central epoch.

Input: (B, L, C, T) — batch, sequence_length, channels, time_samples Output: (B, 1, n_classes) — logit for the central epoch only

This matches the paper: “the temporal context of each 30s window of data” is exploited by concatenating features from surrounding epochs.

Parameters:
  • n_classes (int) – Number of sleep stages (default 5).

  • in_channels (int) – Number of input channels (default 1).

  • sf (int) – Sampling frequency in Hz (default 100).

  • n_times (int) – Samples per epoch (default 3000 = 30s @ 100Hz).

  • dropout (float) – Dropout before the classifier (default 0.25, as in paper).

encode(x)[source]

Encode each epoch independently into a feature vector.

Parameters:

x (Tensor) – (B, L, C, T) input tensor.

Returns:

(B, L, D) epoch-level feature embeddings.

Return type:

Tensor

forward(x)[source]

Forward pass: encode all epochs, concatenate, classify central.

Parameters:

x (Tensor) – (B, L, C, T) input tensor.

Returns:

(B, 1, n_classes) logits for the central epoch.

Return type:

Tensor