You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Use dev braindecode (will remove later)
* Remove model_kwargs from backbone configs (kwargs are coming from hf_hub
* Update sJEPA hub repo
* Raise errors, not warnings when the backbones are not correctly configured
* Add Labram's temporal_embedding to training_required_modules (does not work yet because temporal_embedding is a parameter, not a module)
* Update uv loc for latest braindecode dev version
* Use new Interpolated* backbones
* update braindecode
* Add training_required_parameters field on _BackboneBase
Distinct from training_required_modules: this one accepts top-level
nn.Parameter names (not Modules), e.g. Labram's temporal_embedding.
Extend _check_layers_and_parameters_exist to validate against
named_parameters(), and broaden the checkpoint loading allowed_names
so missing-param entries can be covered by either field.
* Add supports_training_required_parameters ClassVar and wire PEFT target_parameters
Each finetuning method declares (via a ClassVar, not a model field, so
it is immutable from the constructor under extra='forbid') whether it
can keep top-level nn.Parameters trainable. LoRA/AdaLoRA/DoRA forward
training_required_parameters to PEFT's target_parameters argument;
Frozen/TwoStages add the parameter names to the unfreeze list. IA3 and
OFT opt out (no target_parameters in their PEFT configs).
* Validate finetuning compatibility with training_required_parameters
The Experiment validator now reads
finetuning.supports_training_required_parameters and rejects mismatched
combinations. Also extend the ridge check to reject non-empty
training_required_parameters (ridge cannot train extra parameters).
* Migrate Labram default config to InterpolatedLaBraM and use training_required_parameters
Completes the migration started in 3b4ed0e (which migrated BENDR and
SignalJEPA). InterpolatedLaBraM accepts arbitrary montages by projecting
onto the canonical 128-channel layout. temporal_embedding (still an
nn.Parameter) now declared via training_required_parameters.
* Add tests for training_required_parameters validation
Three tests mirroring test_ridge_rejects_training_required_modules:
ridge rejects training_required_parameters, IA3 rejects it, LoRA
accepts it (LoRA forwards to PEFT target_parameters).
* Document training_required_parameters in CHANGELOG
* fix warning message
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
10
10
### Added
11
11
- Allow custom normalization methods by subclassing `Normalization`, now based on `exca.helpers.DiscriminatedModel`. Builtin subclasses pin their pre-existing `kind` value to preserve cached experiment UIDs ([#35](https://github.com/braindecode/OpenEEGBench/pull/35)).
12
+
- Add `training_required_parameters` field on `_BackboneBase` for top-level `nn.Parameter` names that must remain trainable (e.g. Labram's `temporal_embedding`). Distinct from `training_required_modules`, which only accepts `nn.Module` names. Finetuning methods declare compatibility via the `supports_training_required_parameters` class variable; `IA3` and `OFT` opt out. `LoRA`/`AdaLoRA`/`DoRA` forward the list to PEFT's `target_parameters`; `Frozen`/`TwoStages` extend their unfreeze list ([#25](https://github.com/braindecode/OpenEEGBench/pull/25)).
0 commit comments