neuraltrain.models.base.BaseBrainDecodeModel¶
- pydantic model neuraltrain.models.base.BaseBrainDecodeModel[source][source]¶
Base class for braindecode model configurations.
Subclasses set
_MODEL_CLASS_PATH(e.g."braindecode.models.Labram") to resolve the underlying class lazily, avoiding an unconditional braindecode import at module load time. Subclasses that need custom resolution (e.g. optional-dependency handling) can instead override_ensure_model_classdirectly.The dynamic registration in
_register_braindecode_models()sets_MODEL_CLASSdirectly at import time for the common braindecode models, which short-circuits the lazy path.- kwargs[source]¶
Free-form keyword arguments forwarded to the braindecode model constructor. Validated against the model’s
__init__signature at config creation time.- Type:
- from_pretrained_name[source]¶
Optional HuggingFace Hub repository ID (e.g.
"braindecode/labram-pretrained"). When set,build()calls_MODEL_CLASS.from_pretrained()instead of the regular constructor.- Type:
str or None
- required_fields: ClassVar[list[Literal['ch_names', 'n_times', 'sfreq']]] = [][source]¶
Which data-derived build inputs this braindecode model requires forwarded from the context. Members:
"ch_names"– forwardchs_infofrom the dataset’s channel names (e.g. LaBraM, REVE);"n_times"– forwardn_timeseven on the pretrained path (non-pretrained builds always receive it);"sfreq"– forward the sampling rate (frequency-> braindecodesfreq, e.g. models with a fixed spectral front end).
Empty by default: most models take
sfreqvia configkwargsand need neither channel names nor a pretrained-pathn_times.
- 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
BrainModelBuildContextfields/properties, so the basebuild_from_contextinjects them (chs_info/frequencyfrom 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.