braindecode 1.6.1.dev1054__tar.gz → 1.6.1.dev1056__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {braindecode-1.6.1.dev1054/braindecode.egg-info → braindecode-1.6.1.dev1056}/PKG-INFO +1 -1
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/eegneuralnet.py +41 -0
- braindecode-1.6.1.dev1056/braindecode/version.py +1 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056/braindecode.egg-info}/PKG-INFO +1 -1
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/whats_new.rst +15 -0
- braindecode-1.6.1.dev1054/braindecode/version.py +0 -1
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/LICENSE.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/MANIFEST.in +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/NOTICE.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/README.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/base.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/functional.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/transforms.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/classifier.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/base.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bbci.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bcicomp.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/datasets.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/format.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub_format.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub_io.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub_validation.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/iterable.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/chb_mit.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/mne.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/moabb.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/nmt.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/registry.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/siena.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/sleep_physionet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/tuh.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/utils.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/xy.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/channel_utils.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/hub_formats.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/serialization.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/util.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/functional/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/functional/functions.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/functional/initialization.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/atcnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/attentionbasenet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/attn_sleep.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/base.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/bendr.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/biot.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/brainmodule.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/cbramod.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/codebrain.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/config.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/contrawr.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/ctnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/deep4.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/deepsleepnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/dgcnn.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegconformer.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegdino.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eeginception_erp.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eeginception_mi.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegitnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegminer.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegnex.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegpt.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegsimpleconv.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegsym.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eegtcnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/emg2qwerty.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/fbcnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/fblightconvnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/fbmsnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/hybrid.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/ifnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/interpolated.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/labram.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/luna.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/medformer.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/meta_neuromotor.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/msvtnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/patchedtransformer.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/reve.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sccnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/shallow_fbcsp.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/signal_jepa.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sinc_shallow.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sparcnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/sstdpn.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/summary.csv +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/syncnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/tcn.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/tidnet.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/tsinception.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/usleep.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/util.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/activation.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/attention.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/blocks.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/convolution.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/filter.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/interpolation.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/layers.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/linear.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/parametrization.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/stats.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/util.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/wrapper.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/mne_preprocess.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/preprocess.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/util.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/windowers.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/regressor.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/samplers/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/samplers/base.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/samplers/ssl.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/training/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/training/callbacks.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/training/losses.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/training/scoring.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/util.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/__init__.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/attribution.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/confusion_matrices.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/frequency.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/metrics.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/sanity.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/topology.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode.egg-info/SOURCES.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode.egg-info/dependency_links.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode.egg-info/requires.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode.egg-info/top_level.txt +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/Makefile +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/class.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/function.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/api.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/cite.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/conf.py +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/help.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/index.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/install/install.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/install/install_pip.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/install/install_source.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/attention.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/channel.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/convolution.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/filterbank.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/gnn.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/interpretable.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/lbm.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/recurrent.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/spd.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models_categorization.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models_table.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models_visualization.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/sg_execution_times.rst +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/pyproject.toml +0 -0
- {braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.6.1.
|
|
3
|
+
Version: 1.6.1.dev1056
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import abc
|
|
8
8
|
import inspect
|
|
9
9
|
import logging
|
|
10
|
+
import warnings
|
|
10
11
|
from typing import Literal
|
|
11
12
|
|
|
12
13
|
import mne
|
|
@@ -41,6 +42,7 @@ def _get_model(model: str):
|
|
|
41
42
|
|
|
42
43
|
class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
43
44
|
signal_args_set_ = False
|
|
45
|
+
_warned_drop_last_ = False
|
|
44
46
|
|
|
45
47
|
@property
|
|
46
48
|
def log(self):
|
|
@@ -267,6 +269,44 @@ class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
|
267
269
|
X = X.get_data(units="uV")
|
|
268
270
|
return super().get_dataset(X, y)
|
|
269
271
|
|
|
272
|
+
def get_iterator(self, dataset, training=False):
|
|
273
|
+
iterator = super().get_iterator(dataset, training=training)
|
|
274
|
+
# Warn (once per fit) if drop_last would discard every training batch,
|
|
275
|
+
# e.g. a training set smaller than batch_size. This silently skips
|
|
276
|
+
# training without raising any error, which is hard to diagnose.
|
|
277
|
+
if training and not self._warned_drop_last_:
|
|
278
|
+
self._warn_if_training_batches_dropped(iterator)
|
|
279
|
+
return iterator
|
|
280
|
+
|
|
281
|
+
def _warn_if_training_batches_dropped(self, loader):
|
|
282
|
+
"""Warn if ``drop_last`` discards all training batches.
|
|
283
|
+
|
|
284
|
+
With ``iterator_train__drop_last=True`` (the braindecode default), a
|
|
285
|
+
training set smaller than ``batch_size`` yields zero batches, so no
|
|
286
|
+
forward/backward pass runs and the model is left untrained without any
|
|
287
|
+
error. We inspect the resolved training ``DataLoader`` (after
|
|
288
|
+
``train_split`` has been applied), so the count reflects the actual
|
|
289
|
+
number of training examples.
|
|
290
|
+
"""
|
|
291
|
+
self._warned_drop_last_ = True
|
|
292
|
+
if not getattr(loader, "drop_last", False):
|
|
293
|
+
return
|
|
294
|
+
batch_size = getattr(loader, "batch_size", None)
|
|
295
|
+
try:
|
|
296
|
+
n_train = len(loader.dataset)
|
|
297
|
+
except TypeError:
|
|
298
|
+
return # e.g. an IterableDataset whose length is unknown
|
|
299
|
+
if not batch_size or n_train == 0 or n_train >= batch_size:
|
|
300
|
+
return
|
|
301
|
+
warnings.warn(
|
|
302
|
+
f"The training set has {n_train} example(s), which is smaller than "
|
|
303
|
+
f"batch_size={batch_size}. With iterator_train__drop_last=True "
|
|
304
|
+
f"(the braindecode default), all training batches are dropped and "
|
|
305
|
+
f"the model is not trained. Reduce batch_size to at most {n_train}, "
|
|
306
|
+
f"or pass iterator_train__drop_last=False.",
|
|
307
|
+
UserWarning,
|
|
308
|
+
)
|
|
309
|
+
|
|
270
310
|
def partial_fit(self, X, y=None, classes=None, **fit_params):
|
|
271
311
|
"""Fit the module.
|
|
272
312
|
|
|
@@ -366,6 +406,7 @@ class _EEGNeuralNet(NeuralNet, abc.ABC):
|
|
|
366
406
|
the module and to the ``self.train_split`` call.
|
|
367
407
|
"""
|
|
368
408
|
# this needs to be executed before the net is initialized:
|
|
409
|
+
self._warned_drop_last_ = False # re-check on every fresh fit
|
|
369
410
|
if not self.signal_args_set_:
|
|
370
411
|
self._set_signal_args(X, y, classes=None)
|
|
371
412
|
self.signal_args_set_ = True
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.6.1.dev1056"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: braindecode
|
|
3
|
-
Version: 1.6.1.
|
|
3
|
+
Version: 1.6.1.dev1056
|
|
4
4
|
Summary: Deep learning software to decode EEG, ECG or MEG signals
|
|
5
5
|
Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Alexandre Gramfort <agramfort@meta.com>
|
|
6
6
|
Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
|
|
@@ -88,9 +88,24 @@ Bug fixes
|
|
|
88
88
|
:class:`~braindecode.EEGClassifier` infer the signal dimensions from the data.
|
|
89
89
|
By `Bhargav Kowshik`_
|
|
90
90
|
|
|
91
|
+
- Fix :class:`~braindecode.EEGClassifier` and
|
|
92
|
+
:class:`~braindecode.EEGRegressor` silently skipping all training when the
|
|
93
|
+
training set is smaller than ``batch_size`` (with the default
|
|
94
|
+
``iterator_train__drop_last=True``). Previously every batch was dropped and
|
|
95
|
+
the model was left untrained without any message; a :class:`UserWarning` is
|
|
96
|
+
now raised telling the user to lower ``batch_size`` or set
|
|
97
|
+
``iterator_train__drop_last=False``.
|
|
98
|
+
(:gh:`1053` by `Bhargav Kowshik`_)
|
|
99
|
+
|
|
91
100
|
Code health
|
|
92
101
|
============
|
|
93
102
|
|
|
103
|
+
- Silence the new "training set smaller than ``batch_size``" warning
|
|
104
|
+
(:gh:`1053`) in the ``test_eegneuralnet`` signal-argument tests, which
|
|
105
|
+
intentionally fit tiny mock data to check argument propagation rather than
|
|
106
|
+
to train. Keeps the warning meaningful by not emitting it on every CI run.
|
|
107
|
+
(:gh:`1056` by `Adam Mounir`_)
|
|
108
|
+
|
|
94
109
|
- Install CPU-only PyTorch wheels in the ``tests`` and ``docs`` CI
|
|
95
110
|
workflows via ``UV_TORCH_BACKEND=cpu``. GitHub runners have no GPU, so
|
|
96
111
|
the default CUDA build pulled ~1.8 GiB of unused ``nvidia-*`` wheels and
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.6.1.dev1054"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/functional.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/augmentation/transforms.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/datasets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub_format.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/hub_validation.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/bids/iterable.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datasets/sleep_physionet.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/channel_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/datautil/serialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/functional/initialization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/attentionbasenet.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eeginception_erp.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/eeginception_mi.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/fblightconvnet.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/meta_neuromotor.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/models/patchedtransformer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/interpolation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/modules/parametrization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/mne_preprocess.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/preprocess.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/preprocessing/windowers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/__init__.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/attribution.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/frequency.py
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode/visualization/topology.py
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/braindecode.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/class.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/_templates/autosummary/function.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/attention.rst
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/channel.rst
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/convolution.rst
RENAMED
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/filterbank.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/interpretable.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/categorization/recurrent.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models_categorization.rst
RENAMED
|
File without changes
|
|
File without changes
|
{braindecode-1.6.1.dev1054 → braindecode-1.6.1.dev1056}/docs/models/models_visualization.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|