Braindecode 1.3.0.dev171478045__tar.gz → 1.3.0.dev171607082__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.
Files changed (155) hide show
  1. {braindecode-1.3.0.dev171478045/braindecode.egg-info → braindecode-1.3.0.dev171607082}/PKG-INFO +42 -15
  2. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/README.rst +14 -1
  3. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/augmentation/__init__.py +4 -0
  4. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/augmentation/base.py +1 -1
  5. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/augmentation/functional.py +101 -0
  6. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/augmentation/transforms.py +74 -0
  7. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/classifier.py +3 -8
  8. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/__init__.py +16 -4
  9. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/base.py +131 -152
  10. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/bcicomp.py +4 -4
  11. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/bids.py +3 -3
  12. braindecode-1.3.0.dev171607082/braindecode/datasets/chb_mit.py +172 -0
  13. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/experimental.py +2 -2
  14. braindecode-1.3.0.dev171607082/braindecode/datasets/hub.py +945 -0
  15. braindecode-1.3.0.dev171607082/braindecode/datasets/hub_validation.py +113 -0
  16. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/mne.py +3 -5
  17. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/moabb.py +17 -7
  18. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/nmt.py +40 -45
  19. braindecode-1.3.0.dev171607082/braindecode/datasets/registry.py +120 -0
  20. braindecode-1.3.0.dev171607082/braindecode/datasets/siena.py +164 -0
  21. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/sleep_physio_challe_18.py +2 -2
  22. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/sleep_physionet.py +2 -2
  23. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/tuh.py +2 -2
  24. braindecode-1.3.0.dev171607082/braindecode/datasets/utils.py +67 -0
  25. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/xy.py +2 -2
  26. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datautil/__init__.py +13 -1
  27. braindecode-1.3.0.dev171607082/braindecode/datautil/channel_utils.py +114 -0
  28. braindecode-1.3.0.dev171607082/braindecode/datautil/hub_formats.py +180 -0
  29. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datautil/serialization.py +8 -9
  30. braindecode-1.3.0.dev171607082/braindecode/datautil/util.py +155 -0
  31. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/eegneuralnet.py +20 -48
  32. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/functional/functions.py +6 -2
  33. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/functional/initialization.py +2 -3
  34. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/__init__.py +12 -1
  35. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/atcnet.py +36 -37
  36. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/attentionbasenet.py +42 -37
  37. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/attn_sleep.py +11 -7
  38. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/base.py +2 -2
  39. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/bendr.py +2 -2
  40. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/biot.py +27 -25
  41. braindecode-1.3.0.dev171607082/braindecode/models/config.py +233 -0
  42. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/contrawr.py +4 -2
  43. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/ctnet.py +41 -36
  44. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/deep4.py +4 -4
  45. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/deepsleepnet.py +32 -23
  46. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegconformer.py +30 -25
  47. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eeginception_erp.py +32 -26
  48. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eeginception_mi.py +3 -3
  49. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegitnet.py +5 -3
  50. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegminer.py +2 -0
  51. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegnet.py +2 -2
  52. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegnex.py +1 -1
  53. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegsimpleconv.py +1 -1
  54. braindecode-1.3.0.dev171607082/braindecode/models/eegsym.py +917 -0
  55. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/eegtcnet.py +5 -3
  56. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/fbcnet.py +6 -2
  57. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/fblightconvnet.py +3 -1
  58. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/fbmsnet.py +21 -7
  59. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/hybrid.py +1 -1
  60. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/ifnet.py +4 -2
  61. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/labram.py +71 -66
  62. braindecode-1.3.0.dev171607082/braindecode/models/luna.py +836 -0
  63. braindecode-1.3.0.dev171607082/braindecode/models/medformer.py +758 -0
  64. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/msvtnet.py +11 -9
  65. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/patchedtransformer.py +48 -48
  66. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sccnet.py +1 -1
  67. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/shallow_fbcsp.py +4 -2
  68. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/signal_jepa.py +5 -3
  69. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sinc_shallow.py +13 -11
  70. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sleep_stager_blanco_2020.py +1 -1
  71. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sleep_stager_chambon_2018.py +1 -1
  72. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sparcnet.py +4 -4
  73. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/sstdpn.py +2 -2
  74. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/summary.csv +18 -15
  75. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/syncnet.py +3 -1
  76. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/tcn.py +5 -3
  77. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/tidnet.py +1 -1
  78. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/tsinception.py +1 -1
  79. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/models/usleep.py +29 -24
  80. braindecode-1.3.0.dev171607082/braindecode/models/util.py +358 -0
  81. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/attention.py +10 -10
  82. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/blocks.py +6 -4
  83. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/filter.py +2 -9
  84. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/layers.py +18 -17
  85. braindecode-1.3.0.dev171607082/braindecode/preprocessing/__init__.py +271 -0
  86. braindecode-1.3.0.dev171607082/braindecode/preprocessing/eegprep_preprocess.py +1317 -0
  87. braindecode-1.3.0.dev171607082/braindecode/preprocessing/mne_preprocess.py +240 -0
  88. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/preprocessing/preprocess.py +146 -51
  89. braindecode-1.3.0.dev171607082/braindecode/preprocessing/util.py +177 -0
  90. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/preprocessing/windowers.py +26 -20
  91. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/regressor.py +3 -7
  92. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/samplers/base.py +8 -8
  93. braindecode-1.3.0.dev171607082/braindecode/version.py +1 -0
  94. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082/braindecode.egg-info}/PKG-INFO +42 -15
  95. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode.egg-info/SOURCES.txt +14 -0
  96. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode.egg-info/requires.txt +24 -9
  97. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/api.rst +137 -6
  98. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/cite.rst +9 -2
  99. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/conf.py +72 -14
  100. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/index.rst +5 -5
  101. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/install/install_pip.rst +7 -1
  102. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/install/install_source.rst +1 -1
  103. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/attention.rst +5 -5
  104. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/lbm.rst +5 -5
  105. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/models_categorization.rst +8 -8
  106. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/models_table.rst +2 -2
  107. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/whats_new.rst +39 -0
  108. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/pyproject.toml +31 -12
  109. braindecode-1.3.0.dev171478045/braindecode/datautil/util.py +0 -41
  110. braindecode-1.3.0.dev171478045/braindecode/models/util.py +0 -132
  111. braindecode-1.3.0.dev171478045/braindecode/preprocessing/__init__.py +0 -37
  112. braindecode-1.3.0.dev171478045/braindecode/preprocessing/mne_preprocess.py +0 -77
  113. braindecode-1.3.0.dev171478045/braindecode/version.py +0 -1
  114. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/LICENSE.txt +0 -0
  115. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/MANIFEST.in +0 -0
  116. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/NOTICE.txt +0 -0
  117. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/__init__.py +0 -0
  118. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/datasets/bbci.py +0 -0
  119. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/functional/__init__.py +0 -0
  120. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/__init__.py +0 -0
  121. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/activation.py +0 -0
  122. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/convolution.py +0 -0
  123. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/linear.py +0 -0
  124. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/parametrization.py +0 -0
  125. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/stats.py +0 -0
  126. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/util.py +0 -0
  127. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/modules/wrapper.py +0 -0
  128. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/samplers/__init__.py +0 -0
  129. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/samplers/ssl.py +0 -0
  130. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/training/__init__.py +0 -0
  131. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/training/callbacks.py +0 -0
  132. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/training/losses.py +0 -0
  133. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/training/scoring.py +0 -0
  134. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/util.py +0 -0
  135. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/visualization/__init__.py +0 -0
  136. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/visualization/confusion_matrices.py +0 -0
  137. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode/visualization/gradients.py +0 -0
  138. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode.egg-info/dependency_links.txt +0 -0
  139. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/braindecode.egg-info/top_level.txt +0 -0
  140. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/Makefile +0 -0
  141. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/_templates/autosummary/class.rst +0 -0
  142. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/_templates/autosummary/function.rst +0 -0
  143. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/help.rst +0 -0
  144. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/install/install.rst +0 -0
  145. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/channel.rst +0 -0
  146. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/convolution.rst +0 -0
  147. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/filterbank.rst +0 -0
  148. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/gnn.rst +0 -0
  149. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/interpretable.rst +0 -0
  150. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/recurrent.rst +0 -0
  151. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/categorization/spd.rst +0 -0
  152. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/models.rst +0 -0
  153. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/models/models_visualization.rst +0 -0
  154. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/docs/sg_execution_times.rst +0 -0
  155. {braindecode-1.3.0.dev171478045 → braindecode-1.3.0.dev171607082}/setup.cfg +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.3.0.dev171478045
3
+ Version: 1.3.0.dev171607082
4
4
  Summary: Deep learning software to decode EEG, ECG or MEG signals
5
- Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
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
7
  License: BSD-3-Clause
8
8
  Project-URL: homepage, https://braindecode.org
@@ -14,40 +14,47 @@ Classifier: Intended Audience :: Developers
14
14
  Classifier: Intended Audience :: Science/Research
15
15
  Classifier: Topic :: Software Development :: Build Tools
16
16
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
- Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.10
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Requires-Python: >=3.11
21
22
  Description-Content-Type: text/x-rst
22
23
  License-File: LICENSE.txt
23
24
  License-File: NOTICE.txt
24
- Requires-Dist: mne>=1.10.0
25
+ Requires-Dist: mne>=1.11.0
25
26
  Requires-Dist: mne_bids>=0.16
26
27
  Requires-Dist: numpy
27
28
  Requires-Dist: pandas
28
29
  Requires-Dist: scipy
29
30
  Requires-Dist: matplotlib
30
31
  Requires-Dist: h5py
31
- Requires-Dist: skorch>=1.2.0
32
- Requires-Dist: torch<3.0,>=2.0
33
- Requires-Dist: torchaudio<3.0,>=2.0
32
+ Requires-Dist: skorch>=1.3.0
33
+ Requires-Dist: torch>=2.0
34
+ Requires-Dist: torchaudio>=2.0
34
35
  Requires-Dist: einops
35
36
  Requires-Dist: joblib
36
- Requires-Dist: torchinfo~=1.8
37
+ Requires-Dist: torchinfo
37
38
  Requires-Dist: wfdb
38
- Requires-Dist: h5py
39
39
  Requires-Dist: linear_attention_transformer
40
40
  Requires-Dist: docstring_inheritance
41
+ Requires-Dist: rotary_embedding_torch
41
42
  Provides-Extra: moabb
42
- Requires-Dist: moabb>=1.2.0; extra == "moabb"
43
- Provides-Extra: hug
44
- Requires-Dist: huggingface_hub[torch]>=0.20.0; extra == "hug"
43
+ Requires-Dist: moabb>=1.4.3; extra == "moabb"
44
+ Provides-Extra: eegprep
45
+ Requires-Dist: eegprep[eeglabio]>=0.2.23; extra == "eegprep"
46
+ Provides-Extra: hub
47
+ Requires-Dist: huggingface_hub[torch]>=0.20.0; extra == "hub"
48
+ Requires-Dist: zarr>=3.0; extra == "hub"
45
49
  Provides-Extra: tests
46
50
  Requires-Dist: pytest; extra == "tests"
47
51
  Requires-Dist: pytest-cov; extra == "tests"
48
52
  Requires-Dist: codecov; extra == "tests"
49
53
  Requires-Dist: pytest_cases; extra == "tests"
50
54
  Requires-Dist: mypy; extra == "tests"
55
+ Provides-Extra: typing
56
+ Requires-Dist: exca==0.4; extra == "typing"
57
+ Requires-Dist: numpydantic>=1.7; extra == "typing"
51
58
  Provides-Extra: docs
52
59
  Requires-Dist: sphinx_gallery; extra == "docs"
53
60
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
@@ -66,10 +73,21 @@ Requires-Dist: seaborn; extra == "docs"
66
73
  Requires-Dist: pre-commit; extra == "docs"
67
74
  Requires-Dist: openneuro-py; extra == "docs"
68
75
  Requires-Dist: plotly; extra == "docs"
76
+ Requires-Dist: shap; extra == "docs"
77
+ Requires-Dist: nbformat; extra == "docs"
69
78
  Provides-Extra: all
70
- Requires-Dist: braindecode[docs,hug,moabb,tests]; extra == "all"
79
+ Requires-Dist: braindecode[moabb]; extra == "all"
80
+ Requires-Dist: braindecode[tests]; extra == "all"
81
+ Requires-Dist: braindecode[docs]; extra == "all"
82
+ Requires-Dist: braindecode[hub]; extra == "all"
83
+ Requires-Dist: braindecode[eegprep]; extra == "all"
84
+ Requires-Dist: braindecode[typing]; extra == "all"
71
85
  Dynamic: license-file
72
86
 
87
+ .. image:: https://zenodo.org/badge/232335424.svg
88
+ :target: https://doi.org/10.5281/zenodo.8214376
89
+ :alt: DOI
90
+
73
91
  .. image:: https://badges.gitter.im/braindecodechat/community.svg
74
92
  :alt: Join the chat at https://gitter.im/braindecodechat/community
75
93
  :target: https://gitter.im/braindecodechat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
@@ -85,6 +103,7 @@ Dynamic: license-file
85
103
  :target: https://codecov.io/gh/braindecode/braindecode
86
104
  :alt: Code Coverage
87
105
 
106
+
88
107
  .. |Braindecode| image:: https://user-images.githubusercontent.com/42702466/177958779-b00628aa-9155-4c51-96d1-d8c345aff575.svg
89
108
  .. _braindecode: braindecode.org/
90
109
 
@@ -141,7 +160,15 @@ https://gitter.im/braindecodechat/community
141
160
  Citing
142
161
  ======
143
162
 
144
- If you use this code in a scientific publication, please cite us as:
163
+ If you use Braindecode in scientific work, please cite the software using the Zenodo DOI shown in the badge below:
164
+
165
+ .. image:: https://zenodo.org/badge/232335424.svg
166
+ :target: https://doi.org/10.5281/zenodo.8214376
167
+ :alt: DOI
168
+
169
+ Additionally, we highly encourage you to cite the article that originally introduced
170
+ the Braindecode library and has served as a foundational reference for many works
171
+ on deep learning with EEG recordings. Please use the following reference:
145
172
 
146
173
  .. code-block:: bibtex
147
174
 
@@ -1,3 +1,7 @@
1
+ .. image:: https://zenodo.org/badge/232335424.svg
2
+ :target: https://doi.org/10.5281/zenodo.8214376
3
+ :alt: DOI
4
+
1
5
  .. image:: https://badges.gitter.im/braindecodechat/community.svg
2
6
  :alt: Join the chat at https://gitter.im/braindecodechat/community
3
7
  :target: https://gitter.im/braindecodechat/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
@@ -13,6 +17,7 @@
13
17
  :target: https://codecov.io/gh/braindecode/braindecode
14
18
  :alt: Code Coverage
15
19
 
20
+
16
21
  .. |Braindecode| image:: https://user-images.githubusercontent.com/42702466/177958779-b00628aa-9155-4c51-96d1-d8c345aff575.svg
17
22
  .. _braindecode: braindecode.org/
18
23
 
@@ -69,7 +74,15 @@ https://gitter.im/braindecodechat/community
69
74
  Citing
70
75
  ======
71
76
 
72
- If you use this code in a scientific publication, please cite us as:
77
+ If you use Braindecode in scientific work, please cite the software using the Zenodo DOI shown in the badge below:
78
+
79
+ .. image:: https://zenodo.org/badge/232335424.svg
80
+ :target: https://doi.org/10.5281/zenodo.8214376
81
+ :alt: DOI
82
+
83
+ Additionally, we highly encourage you to cite the article that originally introduced
84
+ the Braindecode library and has served as a foundational reference for many works
85
+ on deep learning with EEG recordings. Please use the following reference:
73
86
 
74
87
  .. code-block:: bibtex
75
88
 
@@ -5,8 +5,10 @@ Utilities for data augmentation.
5
5
  from . import functional
6
6
  from .base import AugmentedDataLoader, Compose, IdentityTransform, Transform
7
7
  from .transforms import (
8
+ AmplitudeScale,
8
9
  BandstopFilter,
9
10
  ChannelsDropout,
11
+ ChannelsReref,
10
12
  ChannelsShuffle,
11
13
  ChannelsSymmetry,
12
14
  FrequencyShift,
@@ -46,5 +48,7 @@ __all__ = [
46
48
  "Mixup",
47
49
  "SegmentationReconstruction",
48
50
  "MaskEncoding",
51
+ "AmplitudeScale",
52
+ "ChannelsReref",
49
53
  "functional",
50
54
  ]
@@ -189,7 +189,7 @@ class AugmentedDataLoader(DataLoader):
189
189
 
190
190
  Parameters
191
191
  ----------
192
- dataset : BaseDataset
192
+ dataset : RecordDataset
193
193
  The dataset containing the signals.
194
194
  transforms : list | Transform, optional
195
195
  Transform or sequence of Transform to be applied to each batch.
@@ -1,6 +1,7 @@
1
1
  # Authors: Cédric Rommel <cedric.rommel@inria.fr>
2
2
  # Alexandre Gramfort <alexandre.gramfort@inria.fr>
3
3
  # Gustavo Rodrigues <gustavenrique01@gmail.com>
4
+ # Bruna Lopes <brunajaflopes@gmail.com>
4
5
  #
5
6
  # License: BSD (3-clause)
6
7
 
@@ -1194,3 +1195,103 @@ def mask_encoding(
1194
1195
  X[mask] = 0
1195
1196
 
1196
1197
  return X, y # Return the masked tensor and labels
1198
+
1199
+
1200
+ def channels_rereference(
1201
+ X: torch.Tensor,
1202
+ y: torch.Tensor,
1203
+ random_state: int | np.random.RandomState | None = None,
1204
+ ) -> tuple[torch.Tensor, torch.Tensor]:
1205
+ """Randomly re-reference channels in EEG data matrix.
1206
+
1207
+ Part of the augmentations proposed in [1]_
1208
+
1209
+ Parameters
1210
+ ----------
1211
+ X : torch.Tensor
1212
+ EEG input example or batch.
1213
+ y : torch.Tensor
1214
+ EEG labels for the example or batch.
1215
+ random_state: int | numpy.random.Generator, optional
1216
+ Seed to be used to instantiate numpy random number generator instance.
1217
+ Defaults to None.
1218
+
1219
+ Returns
1220
+ -------
1221
+ torch.Tensor
1222
+ Transformed inputs.
1223
+ torch.Tensor
1224
+ Transformed labels.
1225
+
1226
+ References
1227
+ ----------
1228
+ .. [1] Mohsenvand, M.N., Izadi, M.R. &amp; Maes, P.. (2020). Contrastive
1229
+ Representation Learning for Electroencephalogram Classification. Proceedings
1230
+ of the Machine Learning for Health NeurIPS Workshop, in Proceedings of Machine
1231
+ Learning Research 136:238-253
1232
+
1233
+ """
1234
+
1235
+ rng = check_random_state(random_state)
1236
+ batch_size, n_channels, _ = X.shape
1237
+
1238
+ ch = rng.randint(0, n_channels, size=batch_size)
1239
+
1240
+ X_ch = X[torch.arange(batch_size), ch, :]
1241
+ X = X - X_ch.unsqueeze(1)
1242
+ X[torch.arange(batch_size), ch, :] = -X_ch
1243
+
1244
+ return X, y
1245
+
1246
+
1247
+ def amplitude_scale(
1248
+ X: torch.Tensor,
1249
+ y: torch.Tensor,
1250
+ scale: tuple,
1251
+ random_state: int | np.random.RandomState | None = None,
1252
+ ) -> tuple[torch.Tensor, torch.Tensor]:
1253
+ """Rescale amplitude of each channel based on a random sampled scaling value.
1254
+
1255
+ Part of the augmentations proposed in [1]_
1256
+
1257
+ Parameters
1258
+ ----------
1259
+ X : torch.Tensor
1260
+ EEG input example or batch.
1261
+ y : torch.Tensor
1262
+ EEG labels for the example or batch.
1263
+ scale : tuple of floats
1264
+ Interval from which ypu sample the scaling value
1265
+ random_state: int | numpy.random.Generator, optional
1266
+ Seed to be used to instantiate numpy random number generator instance.
1267
+ Defaults to None.
1268
+
1269
+ Returns
1270
+ -------
1271
+ torch.Tensor
1272
+ Transformed inputs.
1273
+ torch.Tensor
1274
+ Transformed labels.
1275
+
1276
+ References
1277
+ ----------
1278
+ .. [1] Mohsenvand, M.N., Izadi, M.R. &amp; Maes, P.. (2020). Contrastive
1279
+ Representation Learning for Electroencephalogram Classification. Proceedings
1280
+ of the Machine Learning for Health NeurIPS Workshop, in Proceedings of Machine
1281
+ Learning Research 136:238-253
1282
+
1283
+ """
1284
+
1285
+ rng = torch.Generator()
1286
+ rng.manual_seed(random_state)
1287
+ batch_size, n_channels, _ = X.shape
1288
+
1289
+ # Parameter for scaling amplitude / channel / trial
1290
+ l, h = scale
1291
+ s = l + (h - l) * torch.rand(
1292
+ batch_size, n_channels, 1, generator=rng, device=X.device, dtype=X.dtype
1293
+ )
1294
+
1295
+ X = s * X
1296
+
1297
+ return X, y
@@ -1,6 +1,7 @@
1
1
  # Authors: Cédric Rommel <cedric.rommel@inria.fr>
2
2
  # Alexandre Gramfort <alexandre.gramfort@inria.fr>
3
3
  # Gustavo Rodrigues <gustavenrique01@gmail.com>
4
+ # Bruna Lopes <brunajaflopes@gmail.com>
4
5
  #
5
6
  # License: BSD (3-clause)
6
7
 
@@ -13,9 +14,11 @@ from mne.channels import make_standard_montage
13
14
 
14
15
  from .base import Transform
15
16
  from .functional import (
17
+ amplitude_scale,
16
18
  bandstop_filter,
17
19
  channels_dropout,
18
20
  channels_permute,
21
+ channels_rereference,
19
22
  channels_shuffle,
20
23
  frequency_shift,
21
24
  ft_surrogate,
@@ -1271,3 +1274,74 @@ class MaskEncoding(Transform):
1271
1274
  "segment_length": segment_length,
1272
1275
  "n_segments": self.n_segments,
1273
1276
  }
1277
+
1278
+
1279
+ class ChannelsReref(Transform):
1280
+ """Randomly re-reference channels in EEG data matrix.
1281
+
1282
+ Part of the augmentations proposed in [1]_
1283
+
1284
+ Parameters
1285
+ ----------
1286
+ probability: float
1287
+ Float setting the probability of applying the operation.
1288
+ random_state: int | numpy.random.Generator, optional
1289
+ Seed to be used to instantiate numpy random number generator instance.
1290
+ Used to decide whether or not to transform given the probability
1291
+ argument, to sample which channels to shuffle and to carry the shuffle.
1292
+ Defaults to None.
1293
+
1294
+ References
1295
+ ----------
1296
+ .. [1] Mohsenvand, M.N., Izadi, M.R. &amp; Maes, P.. (2020). Contrastive
1297
+ Representation Learning for Electroencephalogram Classification. Proceedings
1298
+ of the Machine Learning for Health NeurIPS Workshop, in Proceedings of Machine
1299
+ Learning Research 136:238-253 Available from https://proceedings.mlr.press/v136/mohsenvand20a.html.
1300
+
1301
+ """
1302
+
1303
+ operation = staticmethod(channels_rereference) # type: ignore[assignment]
1304
+
1305
+ def __init__(self, probability, random_state=None):
1306
+ super().__init__(probability=probability, random_state=random_state)
1307
+
1308
+ def get_augmentation_params(self, *batch):
1309
+ """Return transform parameters"""
1310
+ return {
1311
+ "random_state": self.rng,
1312
+ }
1313
+
1314
+
1315
+ class AmplitudeScale(Transform):
1316
+ """Rescale amplitude based on a random sampled scaling value.
1317
+
1318
+ Part of the augmentations proposed in [1]_
1319
+
1320
+ Parameters
1321
+ ----------
1322
+ probability: float
1323
+ Float setting the probability of applying the operation.
1324
+ random_state: int | numpy.random.Generator, optional
1325
+ Seed to be used to instantiate numpy random number generator instance.
1326
+ Used to decide whether or not to transform given the probability
1327
+ argument, to sample which channels to shuffle and to carry the shuffle.
1328
+ Defaults to None.
1329
+
1330
+ References
1331
+ ----------
1332
+ .. [1] Mohsenvand, M.N., Izadi, M.R. &amp; Maes, P.. (2020). Contrastive
1333
+ Representation Learning for Electroencephalogram Classification. Proceedings
1334
+ of the Machine Learning for Health NeurIPS Workshop, in Proceedings of Machine
1335
+ Learning Research 136:238-253 Available from https://proceedings.mlr.press/v136/mohsenvand20a.html.
1336
+
1337
+ """
1338
+
1339
+ operation = staticmethod(amplitude_scale) # type: ignore[assignment]
1340
+
1341
+ def __init__(self, probability, interval=(0.5, 2), random_state=None):
1342
+ super().__init__(probability=probability, random_state=random_state)
1343
+ self.scale = interval
1344
+
1345
+ def get_augmentation_params(self, *batch):
1346
+ """Return transform parameters"""
1347
+ return {"random_state": self.rng, "scale": self.scale}
@@ -8,7 +8,6 @@
8
8
 
9
9
  import warnings
10
10
 
11
- import numpy as np
12
11
  from skorch import NeuralNet
13
12
  from skorch.callbacks import EpochScoring
14
13
  from skorch.classifier import NeuralNetClassifier
@@ -237,13 +236,9 @@ class EEGClassifier(_EEGNeuralNet, NeuralNetClassifier):
237
236
  num_workers=self.get_iterator(X, training=False).loader.num_workers,
238
237
  )
239
238
 
240
- def _get_n_outputs(self, y, classes):
241
- classes_y = np.unique(y)
242
- if classes is not None:
243
- assert set(classes_y) <= set(classes)
244
- else:
245
- classes = classes_y
246
- return len(classes)
239
+ @property
240
+ def mode(self):
241
+ return "classification"
247
242
 
248
243
  # Only add the 'accuracy' callback if we are not in cropped mode.
249
244
  @property
@@ -2,12 +2,20 @@
2
2
  Loader code for some datasets.
3
3
  """
4
4
 
5
- from .base import BaseConcatDataset, BaseDataset, WindowsDataset
5
+ from .base import (
6
+ BaseConcatDataset,
7
+ EEGWindowsDataset,
8
+ RawDataset,
9
+ RecordDataset,
10
+ WindowsDataset,
11
+ )
6
12
  from .bcicomp import BCICompetitionIVDataset4
7
13
  from .bids import BIDSDataset, BIDSEpochsDataset
14
+ from .chb_mit import CHBMIT
8
15
  from .mne import create_from_mne_epochs, create_from_mne_raw
9
- from .moabb import BNCI2014001, HGD, MOABBDataset
16
+ from .moabb import BNCI2014_001, HGD, MOABBDataset
10
17
  from .nmt import NMT
18
+ from .siena import SIENA
11
19
  from .sleep_physio_challe_18 import SleepPhysionetChallenge2018
12
20
  from .sleep_physionet import SleepPhysionet
13
21
  from .tuh import TUH, TUHAbnormal
@@ -15,18 +23,22 @@ from .xy import create_from_X_y
15
23
 
16
24
  __all__ = [
17
25
  "WindowsDataset",
18
- "BaseDataset",
26
+ "EEGWindowsDataset",
27
+ "RecordDataset",
28
+ "RawDataset",
19
29
  "BaseConcatDataset",
20
30
  "BIDSDataset",
21
31
  "BIDSEpochsDataset",
22
32
  "MOABBDataset",
23
33
  "HGD",
24
- "BNCI2014001",
34
+ "BNCI2014_001",
25
35
  "create_from_mne_raw",
26
36
  "create_from_mne_epochs",
27
37
  "TUH",
28
38
  "TUHAbnormal",
39
+ "SIENA",
29
40
  "NMT",
41
+ "CHBMIT",
30
42
  "SleepPhysionet",
31
43
  "SleepPhysionetChallenge2018",
32
44
  "create_from_X_y",