neuraltrain.models.labram.NtLabram

pydantic model neuraltrain.models.labram.NtLabram[source][source]

Config for the braindecode LaBraM model with pretrained-model support.

Extends BaseBrainDecodeModel with LaBraM-specific logic:

  1. Channel remapping – an explicit channel_mapping dict maps dataset channel names to LaBraM channel names. Channels whose names already match LABRAM_CHANNEL_ORDER (case-insensitively) need no entry.

  2. Dynamic channel resolution – the model is wrapped in _LabramChannelWrapper so that valid channels are detected from channel_positions at each forward call, then remapped and passed to the inner braindecode model via ch_names.

Parameters:

channel_mapping (dict or None) – Explicit mapping from dataset channel names to LaBraM channel names. Useful for EEG systems with known correspondences (e.g. Geodesic E-number to 10-10).

Fields:
required_fields: ClassVar[list[Literal['ch_names', 'n_times', 'sfreq']]] = ['ch_names', 'n_times'][source]

Which data-derived build inputs this braindecode model requires forwarded from the context. Members:

  • "ch_names" – forward chs_info from the dataset’s channel names (e.g. LaBraM, REVE);

  • "n_times" – forward n_times even on the pretrained path (non-pretrained builds always receive it);

  • "sfreq" – forward the sampling rate (frequency -> braindecode sfreq, e.g. models with a fixed spectral front end).

Empty by default: most models take sfreq via config kwargs and need neither channel names nor a pretrained-path n_times.

field channel_mapping: dict[str, str] | None = None[source]
build(n_spatial_locations: int, n_temporal_samples: int, n_outputs: int | None = None, chs_info: list[dict[str, Any]] | None = None, frequency: float | None = None) Module[source][source]

Build the braindecode model from context-named shape parameters.

Parameters are named/typed like BrainModelBuildContext fields/properties, so the base build_from_context injects them (chs_info / frequency from the matching context properties/fields). Covers every auto-registered braindecode model (EEGNet, Deep4Net, ShallowFBCSPNet, BIOT, …); custom configs (LaBraM, REVE, LUNA, BENDR) override this and reuse _bd_shape_kwargs() for the name mapping.