Braindecode 1.2.0.dev176281713__tar.gz → 1.2.0.dev180217551__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 (127) hide show
  1. {braindecode-1.2.0.dev176281713/braindecode.egg-info → braindecode-1.2.0.dev180217551}/PKG-INFO +1 -5
  2. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/__init__.py +2 -1
  3. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/attentionbasenet.py +4 -5
  4. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegnex.py +7 -2
  5. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/summary.csv +41 -40
  6. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/util.py +1 -0
  7. braindecode-1.2.0.dev180217551/braindecode/version.py +1 -0
  8. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551/braindecode.egg-info}/PKG-INFO +1 -5
  9. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/SOURCES.txt +2 -6
  10. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/requires.txt +0 -4
  11. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/api.rst +7 -6
  12. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/conf.py +7 -22
  13. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/index.rst +1 -1
  14. braindecode-1.2.0.dev180217551/docs/models_summary.rst +134 -0
  15. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/whats_new.rst +0 -3
  16. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/pyproject.toml +1 -5
  17. braindecode-1.2.0.dev176281713/braindecode/datasets/experimental.py +0 -218
  18. braindecode-1.2.0.dev176281713/braindecode/version.py +0 -1
  19. braindecode-1.2.0.dev176281713/docs/models/models.rst +0 -76
  20. braindecode-1.2.0.dev176281713/docs/models/models_categorization.rst +0 -174
  21. braindecode-1.2.0.dev176281713/docs/models/models_table.rst +0 -139
  22. braindecode-1.2.0.dev176281713/docs/models/models_visualization.rst +0 -21
  23. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/LICENSE.txt +0 -0
  24. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/MANIFEST.in +0 -0
  25. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/NOTICE.txt +0 -0
  26. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/README.rst +0 -0
  27. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/__init__.py +0 -0
  28. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/__init__.py +0 -0
  29. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/base.py +0 -0
  30. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/functional.py +0 -0
  31. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/augmentation/transforms.py +0 -0
  32. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/classifier.py +0 -0
  33. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/__init__.py +0 -0
  34. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/base.py +0 -0
  35. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bbci.py +0 -0
  36. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bcicomp.py +0 -0
  37. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/bids.py +0 -0
  38. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/mne.py +0 -0
  39. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/moabb.py +0 -0
  40. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/nmt.py +0 -0
  41. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  42. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/sleep_physionet.py +0 -0
  43. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/tuh.py +0 -0
  44. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datasets/xy.py +0 -0
  45. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/__init__.py +0 -0
  46. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/serialization.py +0 -0
  47. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/datautil/util.py +0 -0
  48. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/eegneuralnet.py +0 -0
  49. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/__init__.py +0 -0
  50. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/functions.py +0 -0
  51. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/functional/initialization.py +0 -0
  52. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/atcnet.py +0 -0
  53. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/base.py +0 -0
  54. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/biot.py +0 -0
  55. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/contrawr.py +0 -0
  56. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/ctnet.py +0 -0
  57. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/deep4.py +0 -0
  58. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/deepsleepnet.py +0 -0
  59. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegconformer.py +0 -0
  60. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eeginception_erp.py +0 -0
  61. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eeginception_mi.py +0 -0
  62. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegitnet.py +0 -0
  63. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegminer.py +0 -0
  64. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegnet.py +0 -0
  65. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegresnet.py +0 -0
  66. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegsimpleconv.py +0 -0
  67. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/eegtcnet.py +0 -0
  68. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fbcnet.py +0 -0
  69. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fblightconvnet.py +0 -0
  70. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/fbmsnet.py +0 -0
  71. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/hybrid.py +0 -0
  72. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/ifnet.py +0 -0
  73. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/labram.py +0 -0
  74. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/msvtnet.py +0 -0
  75. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sccnet.py +0 -0
  76. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/shallow_fbcsp.py +0 -0
  77. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/signal_jepa.py +0 -0
  78. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sinc_shallow.py +0 -0
  79. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  80. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  81. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sleep_stager_eldele_2021.py +0 -0
  82. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/sparcnet.py +0 -0
  83. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/syncnet.py +0 -0
  84. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tcn.py +0 -0
  85. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tidnet.py +0 -0
  86. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/tsinception.py +0 -0
  87. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/models/usleep.py +0 -0
  88. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/__init__.py +0 -0
  89. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/activation.py +0 -0
  90. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/attention.py +0 -0
  91. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/blocks.py +0 -0
  92. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/convolution.py +0 -0
  93. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/filter.py +0 -0
  94. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/layers.py +0 -0
  95. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/linear.py +0 -0
  96. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/parametrization.py +0 -0
  97. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/stats.py +0 -0
  98. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/util.py +0 -0
  99. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/modules/wrapper.py +0 -0
  100. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/__init__.py +0 -0
  101. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/mne_preprocess.py +0 -0
  102. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/preprocess.py +0 -0
  103. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/preprocessing/windowers.py +0 -0
  104. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/regressor.py +0 -0
  105. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/__init__.py +0 -0
  106. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/base.py +0 -0
  107. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/samplers/ssl.py +0 -0
  108. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/__init__.py +0 -0
  109. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/callbacks.py +0 -0
  110. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/losses.py +0 -0
  111. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/training/scoring.py +0 -0
  112. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/util.py +0 -0
  113. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/__init__.py +0 -0
  114. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/confusion_matrices.py +0 -0
  115. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode/visualization/gradients.py +0 -0
  116. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/dependency_links.txt +0 -0
  117. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/braindecode.egg-info/top_level.txt +0 -0
  118. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/Makefile +0 -0
  119. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/_templates/autosummary/class.rst +0 -0
  120. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/_templates/autosummary/function.rst +0 -0
  121. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/cite.rst +0 -0
  122. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/help.rst +0 -0
  123. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install.rst +0 -0
  124. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install_pip.rst +0 -0
  125. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/install/install_source.rst +0 -0
  126. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/docs/sg_execution_times.rst +0 -0
  127. {braindecode-1.2.0.dev176281713 → braindecode-1.2.0.dev180217551}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.2.0.dev176281713
3
+ Version: 1.2.0.dev180217551
4
4
  Summary: Deep learning software to decode EEG, ECG or MEG signals
5
5
  Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
6
6
  Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
@@ -49,9 +49,6 @@ Requires-Dist: mypy; extra == "tests"
49
49
  Provides-Extra: docs
50
50
  Requires-Dist: sphinx_gallery; extra == "docs"
51
51
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
52
- Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
53
- Requires-Dist: sphinx-autobuild; extra == "docs"
54
- Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
55
52
  Requires-Dist: pydata_sphinx_theme; extra == "docs"
56
53
  Requires-Dist: numpydoc; extra == "docs"
57
54
  Requires-Dist: memory_profiler; extra == "docs"
@@ -62,7 +59,6 @@ Requires-Dist: lightning; extra == "docs"
62
59
  Requires-Dist: seaborn; extra == "docs"
63
60
  Requires-Dist: pre-commit; extra == "docs"
64
61
  Requires-Dist: openneuro-py; extra == "docs"
65
- Requires-Dist: plotly; extra == "docs"
66
62
  Provides-Extra: all
67
63
  Requires-Dist: braindecode[docs,moabb,tests]; extra == "all"
68
64
  Dynamic: license-file
@@ -15,7 +15,7 @@ from .eeginception_erp import EEGInceptionERP
15
15
  from .eeginception_mi import EEGInceptionMI
16
16
  from .eegitnet import EEGITNet
17
17
  from .eegminer import EEGMiner
18
- from .eegnet import EEGNetv4
18
+ from .eegnet import EEGNetv1, EEGNetv4
19
19
  from .eegnex import EEGNeX
20
20
  from .eegresnet import EEGResNet
21
21
  from .eegsimpleconv import EEGSimpleConv
@@ -65,6 +65,7 @@ __all__ = [
65
65
  "EEGInceptionMI",
66
66
  "EEGITNet",
67
67
  "EEGMiner",
68
+ "EEGNetv1",
68
69
  "EEGNetv4",
69
70
  "EEGNeX",
70
71
  "EEGResNet",
@@ -24,7 +24,7 @@ from braindecode.modules.attention import (
24
24
 
25
25
 
26
26
  class AttentionBaseNet(EEGModuleMixin, nn.Module):
27
- """AttentionBaseNet from Wimpff M et al. (2023) [Martin2023]_.
27
+ """
28
28
 
29
29
  :bdg-success:`Convolution` :bdg-info:`Small Attention`
30
30
 
@@ -165,11 +165,10 @@ class AttentionBaseNet(EEGModuleMixin, nn.Module):
165
165
  Notes
166
166
  -----
167
167
  - Sequence length after each stage is computed internally; the final classifier expects
168
- a flattened ``ch_dim x T₂`` vector.
168
+ a flattened ``ch_dim x T₂`` vector.
169
169
  - Attention operates on *channel* dimension by design; temporal gating exists only in
170
- specific variants (CBAM/CAT).
171
- - The paper and original code with more details about the methodological
172
- choices are available at the [Martin2023]_ and [MartinCode]_.
170
+ specific variants (CBAM/CAT).
171
+
173
172
  .. versionadded:: 0.9
174
173
 
175
174
  Parameters
@@ -129,8 +129,7 @@ class EEGNeX(EEGModuleMixin, nn.Module):
129
129
  -----
130
130
  - The braindecode implementation follows the paper's conv-only design with five blocks
131
131
  and reproduces the depthwise spatial step and dilated temporal stack. See the class
132
- reference for exact kernel sizes, dilations, and pooling defaults. You can check the
133
- original implementation at [EEGNexCode]_.
132
+ reference for exact kernel sizes, dilations, and pooling defaults.
134
133
 
135
134
  .. versionadded:: 1.1
136
135
 
@@ -160,6 +159,12 @@ class EEGNeX(EEGModuleMixin, nn.Module):
160
159
  avg_pool_block5 : tuple[int, int], optional
161
160
  Pooling size for block 5. Default is (1, 8).
162
161
 
162
+ Notes
163
+ -----
164
+ This implementation is not guaranteed to be correct, has not been checked
165
+ by original authors, only reimplemented from the paper description and
166
+ source code in tensorflow [EEGNexCode]_.
167
+
163
168
  References
164
169
  ----------
165
170
  .. [eegnex] Chen, X., Teng, X., Chen, H., Pan, Y., & Geyer, P. (2024).
@@ -1,40 +1,41 @@
1
- Model,Paradigm,Type,Freq(Hz),Hyperparameters,#Parameters,get_#Parameters,Categorization
2
- ATCNet,General,Classification,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Small Attention"
3
- AttentionBaseNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Small Attention"
4
- BDTCN,Normal Abnormal,Classification,100,"n_chans, n_outputs, n_times",456502,"BDTCN(n_chans=21, n_outputs=2, n_times=6000, n_blocks=5, n_filters=55, kernel_size=16)","Convolution,Recurrent"
5
- BIOT,"Sleep Staging, Epilepsy",Classification,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)","Large Language Model"
6
- ContraWR,Sleep Staging,"Classification, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)",Convolution
7
- CTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, heads=2, emb_size=16)","Convolution,Small Attention"
8
- Deep4Net,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
9
- DeepSleepNet,Sleep Staging,Classification,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)","Convolution"
10
- EEGConformer,General,Classification,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Small Attention"
11
- EEGInceptionERP,"ERP, SSVEP",Classification,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)","Convolution"
12
- EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)","Convolution"
13
- EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)","Convolution,Recurrent"
14
- EEGNetv4,General,Classification,128,"n_chans, n_outputs, n_times",2484,"EEGNetv4(n_chans=22, n_outputs=4, n_times=512)","Convolution"
15
- EEGNeX,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)","Convolution"
16
- EEGMiner,Emotion Recognition,Classification,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)","Convolution"
17
- EEGResNet,General,Classification,250,"n_chans, n_outputs, n_times",247484,"EEGResNet(n_chans=22, n_outputs=4, n_times=1000)","Interpretability"
18
- EEGSimpleConv,Motor Imagery,Classification,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)","Convolution"
19
- EEGTCNet,Motor Imagery,Classification,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)","Convolution,Recurrent"
20
- Labram,General,"Classification, Embedding",200,"n_chans, n_outputs, n_times",5866180,"Labram(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Large Language Model"
21
- MSVTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",75494," MSVTNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution,Recurrent,Small Attention"
22
- SCCNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times, sfreq",12070,"SCCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=125)","Convolution"
23
- SignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"n_times, chs_info",3456882,"SignalJEPA(n_times=512, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Large Language Model"
24
- SignalJEPA_Contextual,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",3459184,"SignalJEPA_Contextual(n_outputs=2, input_window_seconds=4.19, sfreq=128, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])","Convolution,Channel,Large Language Model"
25
- SignalJEPA_PostLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_chans, n_outputs, n_times",16142,"SignalJEPA_PostLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Large Language Model"
26
- SignalJEPA_PreLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",16142,"SignalJEPA_PreLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)","Convolution,Channel,Large Language Model"
27
- SincShallowNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",21892,"SincShallowNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,Interpretability"
28
- ShallowFBCSPNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",46084,"ShallowFBCSPNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution"
29
- SleepStagerBlanco2020,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times",2845,"SleepStagerBlanco2020(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
30
- SleepStagerChambon2018,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",5835,"SleepStagerChambon2018(n_chans=2, n_outputs=5, n_times=3840, sfreq=128)","Convolution"
31
- SleepStagerEldele2021,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times, sfreq",719925,"SleepStagerEldele2021(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution, Small Attention"
32
- SPARCNet,Epilepsy,Classification,200,"n_chans, n_outputs, n_times",1141921,"SPARCNet(n_chans=16, n_outputs=6, n_times=2000, sfreq=200)","Convolution"
33
- SyncNet,"Emotion Recognition, Alcoholism",Classification,256,"n_chans, n_outputs, n_times",554,"SyncNet(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Interpretability"
34
- TSceptionV1,Emotion Recognition,Classification,256,"n_chans, n_outputs, n_times, sfreq",2187206,"TSceptionV1(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)","Convolution"
35
- TIDNet,General,Classification,250,"n_chans, n_outputs, n_times",240404,"TIDNet(n_chans=22, n_outputs=4, n_times=1000)","Convolution"
36
- USleep,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",2482011,"USleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)","Convolution"
37
- FBCNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",11812,"FCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
38
- FBMSNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",16231,"FBMSNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
39
- FBLightConvNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",6596,"FBLightConvNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
40
- IFNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",9860,"IFNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)","Convolution,FilterBank"
1
+ Model,Paradigm,Type,Freq(Hz),Hyperparameters,#Parameters,get_#Parameters
2
+ ATCNet,General,Classification,250,"n_chans, n_outputs, n_times",113732,"ATCNet(n_chans=22, n_outputs=4, n_times=1000)"
3
+ AttentionBaseNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",3692,"AttentionBaseNet(n_chans=22, n_outputs=4, n_times=1000)"
4
+ BDTCN,Normal/Abnormal,Classification,100,"n_chans, n_outputs, n_times",456502,"BDTCN(n_chans=21, n_outputs=2, n_times=6000, n_blocks=5, n_filters=55, kernel_size=16)"
5
+ BIOT,"Sleep Staging, Epilepsy",Classification,200,"n_chans, n_outputs",3183879,"BIOT(n_chans=2, n_outputs=5, n_times=6000)"
6
+ ContraWR,Sleep Staging,"Classification, Embedding",125,"n_chans, n_outputs, sfreq",1160165,"ContraWR(n_chans=2, n_outputs=5, n_times=3750, emb_size=256, sfreq=125)"
7
+ CTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",26900,"CTNet(n_chans=22, n_outputs=4, n_times=1000, n_filters_time=8, kernel_size=16, heads=2, emb_size=16)"
8
+ Deep4Net,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",282879,"Deep4Net(n_chans=22, n_outputs=4, n_times=1000)"
9
+ DeepSleepNet,Sleep Staging,Classification,256,"n_chans, n_outputs",24744837,"DeepSleepNet(n_chans=1, n_outputs=5, n_times=7680, sfreq=256)"
10
+ EEGConformer,General,Classification,250,"n_chans, n_outputs, n_times",789572,"EEGConformer(n_chans=22, n_outputs=4, n_times=1000)."
11
+ EEGInceptionERP,"ERP, SSVEP",Classification,128,"n_chans, n_outputs",14926,"EEGInceptionERP(n_chans=8, n_outputs=2, n_times=128, sfreq=128)"
12
+ EEGInceptionMI,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",558028,"EEGInceptionMI(n_chans=22, n_outputs=4, n_times=1000, n_convs=5, n_filters=12)"
13
+ EEGITNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",5212,"EEGITNet(n_chans=22, n_outputs=4, n_times=500)"
14
+ EEGNetv1,General,Classification,128,"n_chans, n_outputs, n_times",3052,"EEGNetv1(n_chans=22, n_outputs=4, n_times=512)"
15
+ EEGNetv4,General,Classification,128,"n_chans, n_outputs, n_times",2484,"EEGNetv4(n_chans=22, n_outputs=4, n_times=512)"
16
+ EEGNeX,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times",55940,"EEGNeX(n_chans=22, n_outputs=4, n_times=500)"
17
+ EEGMiner,Emotion Recognition,Classification,128,"n_chans, n_outputs, n_times, sfreq",7572,"EEGMiner(n_chans=62, n_outputs=2, n_times=2560, sfreq=128)"
18
+ EEGResNet,General,Classification,250,"n_chans, n_outputs, n_times",247484,"EEGResNet(n_chans=22, n_outputs=4, n_times=1000)"
19
+ EEGSimpleConv,Motor Imagery,Classification,80,"n_chans, n_outputs, sfreq",730404,"EEGSimpleConv(n_chans=22, n_outputs=4, n_times=320, sfreq=80)"
20
+ EEGTCNet,Motor Imagery,Classification,250,"n_chans, n_outputs",4516,"EEGTCNet(n_chans=22, n_outputs=4, n_times=1000, kern_length=32)"
21
+ Labram,General,"Classification, Embedding",200,"n_chans, n_outputs, n_times",5866180,"Labram(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
22
+ MSVTNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",75494," MSVTNet(n_chans=22, n_outputs=4, n_times=1000)"
23
+ SCCNet,Motor Imagery,Classification,125,"n_chans, n_outputs, n_times, sfreq",12070,"SCCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=125)"
24
+ SignalJEPA,"Motor Imagery, ERP, SSVEP",Embedding,128,"n_times, chs_info",3456882,"SignalJEPA(n_times=512, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])"
25
+ SignalJEPA_Contextual,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",3459184,"SignalJEPA_Contextual(n_outputs=2, input_window_seconds=4.19, sfreq=128, chs_info=Lee2019_MI().get_data(subjects=[1])[1]['0']['1train'].info[""chs""][:62])"
26
+ SignalJEPA_PostLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_chans, n_outputs, n_times",16142,"SignalJEPA_PostLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)"
27
+ SignalJEPA_PreLocal,"Motor Imagery, ERP, SSVEP",Classification,128,"n_outputs, n_times, chs_info",16142,"SignalJEPA_PreLocal(n_chans=62, n_outputs=2, input_window_seconds=4.19, sfreq=128)"
28
+ SincShallowNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",21892,"SincShallowNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
29
+ ShallowFBCSPNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times",46084,"ShallowFBCSPNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
30
+ SleepStagerBlanco2020,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times",2845,"SleepStagerBlanco2020(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
31
+ SleepStagerChambon2018,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",5835,"SleepStagerChambon2018(n_chans=2, n_outputs=5, n_times=3840, sfreq=128)"
32
+ SleepStagerEldele2021,Sleep Staging,Classification,100,"n_chans, n_outputs, n_times, sfreq",719925,"SleepStagerEldele2021(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
33
+ SPARCNet,Epilepsy,Classification,200,"n_chans, n_outputs, n_times",1141921,"SPARCNet(n_chans=16, n_outputs=6, n_times=2000, sfreq=200)"
34
+ SyncNet,"Emotion Recognition, Alcoholism",Classification,256,"n_chans, n_outputs, n_times",554,"SyncNet(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)"
35
+ TSceptionV1,Emotion Recognition,Classification,256,"n_chans, n_outputs, n_times, sfreq",2187206,"TSceptionV1(n_chans=62, n_outputs=3, n_times=5120, sfreq=256)"
36
+ TIDNet,General,Classification,250,"n_chans, n_outputs, n_times",240404,"TIDNet(n_chans=22, n_outputs=4, n_times=1000)"
37
+ USleep,Sleep Staging,Classification,128,"n_chans, n_outputs, n_times, sfreq",2482011,"USleep(n_chans=2, n_outputs=5, n_times=3000, sfreq=100)"
38
+ FBCNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",11812,"FCNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
39
+ FBMSNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",16231,"FBMSNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
40
+ FBLightConvNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",6596,"FBLightConvNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
41
+ IFNet,Motor Imagery,Classification,250,"n_chans, n_outputs, n_times, sfreq",9860,"IFNet(n_chans=22, n_outputs=4, n_times=1000, sfreq=250)"
@@ -55,6 +55,7 @@ models_mandatory_parameters = [
55
55
  ("EEGInceptionERP", ["n_chans", "n_outputs", "n_times", "sfreq"], None),
56
56
  ("EEGInceptionMI", ["n_chans", "n_outputs", "n_times", "sfreq"], None),
57
57
  ("EEGITNet", ["n_chans", "n_outputs", "n_times"], None),
58
+ ("EEGNetv1", ["n_chans", "n_outputs", "n_times"], None),
58
59
  ("EEGNetv4", ["n_chans", "n_outputs", "n_times"], None),
59
60
  ("EEGResNet", ["n_chans", "n_outputs", "n_times"], None),
60
61
  ("ShallowFBCSPNet", ["n_chans", "n_outputs", "n_times"], None),
@@ -0,0 +1 @@
1
+ __version__ = "1.2.0.dev180217551"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.2.0.dev176281713
3
+ Version: 1.2.0.dev180217551
4
4
  Summary: Deep learning software to decode EEG, ECG or MEG signals
5
5
  Author-email: Robin Tibor Schirrmeister <robintibor@gmail.com>
6
6
  Maintainer-email: Alexandre Gramfort <agramfort@meta.com>, Bruno Aristimunha Pinto <b.aristimunha@gmail.com>, Robin Tibor Schirrmeister <robintibor@gmail.com>
@@ -49,9 +49,6 @@ Requires-Dist: mypy; extra == "tests"
49
49
  Provides-Extra: docs
50
50
  Requires-Dist: sphinx_gallery; extra == "docs"
51
51
  Requires-Dist: sphinx_rtd_theme; extra == "docs"
52
- Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
53
- Requires-Dist: sphinx-autobuild; extra == "docs"
54
- Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
55
52
  Requires-Dist: pydata_sphinx_theme; extra == "docs"
56
53
  Requires-Dist: numpydoc; extra == "docs"
57
54
  Requires-Dist: memory_profiler; extra == "docs"
@@ -62,7 +59,6 @@ Requires-Dist: lightning; extra == "docs"
62
59
  Requires-Dist: seaborn; extra == "docs"
63
60
  Requires-Dist: pre-commit; extra == "docs"
64
61
  Requires-Dist: openneuro-py; extra == "docs"
65
- Requires-Dist: plotly; extra == "docs"
66
62
  Provides-Extra: all
67
63
  Requires-Dist: braindecode[docs,moabb,tests]; extra == "all"
68
64
  Dynamic: license-file
@@ -24,7 +24,6 @@ braindecode/datasets/base.py
24
24
  braindecode/datasets/bbci.py
25
25
  braindecode/datasets/bcicomp.py
26
26
  braindecode/datasets/bids.py
27
- braindecode/datasets/experimental.py
28
27
  braindecode/datasets/mne.py
29
28
  braindecode/datasets/moabb.py
30
29
  braindecode/datasets/nmt.py
@@ -111,14 +110,11 @@ docs/cite.rst
111
110
  docs/conf.py
112
111
  docs/help.rst
113
112
  docs/index.rst
113
+ docs/models_summary.rst
114
114
  docs/sg_execution_times.rst
115
115
  docs/whats_new.rst
116
116
  docs/_templates/autosummary/class.rst
117
117
  docs/_templates/autosummary/function.rst
118
118
  docs/install/install.rst
119
119
  docs/install/install_pip.rst
120
- docs/install/install_source.rst
121
- docs/models/models.rst
122
- docs/models/models_categorization.rst
123
- docs/models/models_table.rst
124
- docs/models/models_visualization.rst
120
+ docs/install/install_source.rst
@@ -22,9 +22,6 @@ braindecode[docs,moabb,tests]
22
22
  [docs]
23
23
  sphinx_gallery
24
24
  sphinx_rtd_theme
25
- sphinx-autodoc-typehints
26
- sphinx-autobuild
27
- sphinxcontrib-bibtex
28
25
  pydata_sphinx_theme
29
26
  numpydoc
30
27
  memory_profiler
@@ -35,7 +32,6 @@ lightning
35
32
  seaborn
36
33
  pre-commit
37
34
  openneuro-py
38
- plotly
39
35
 
40
36
  [moabb]
41
37
  moabb>=1.2.0
@@ -19,12 +19,12 @@ Model zoo availables in braindecode. The models are implemented as
19
19
  All the models have the convention of having the signal related parameters
20
20
  named the same way, following the braindecode's standards:
21
21
 
22
- + :fa:`shapes`\ ``n_outputs``: Number of labels or outputs of the model.
23
- + :fa:`wave-square`\ ``n_chans``: Number of EEG channels.
24
- + :fa:`clock`\ ``n_times``: Number of time points of the input window.
25
- + :fa:`wifi`\ ``sfreq``: Sampling frequency of the EEG recordings.
26
- + (:fa:`clock`\ / :fa:`wifi`\) ``input_window_seconds``: Length of the input window in seconds.
27
- + :fa:`info-circle`\ ``chs_info``: Information about each individual EEG channel. Refer to :class:`mne.Info["chs"]`.
22
+ + ``n_outputs``: Number of labels or outputs of the model.
23
+ + ``n_chans``: Number of EEG channels.
24
+ + ``n_times``: Number of time points of the input window.
25
+ + ``input_window_seconds``: Length of the input window in seconds.
26
+ + ``sfreq``: Sampling frequency of the EEG recordings.
27
+ + ``chs_info``: Information about each individual EEG channel. Refer to :class:`mne.Info["chs"]`.
28
28
 
29
29
  All the models assume that the input data is a 3D tensor of shape
30
30
  ``(batch_size, n_chans, n_times)``, and some models also accept a 4D tensor of shape
@@ -65,6 +65,7 @@ provides a common interface for all EEG models and derivate variables names if n
65
65
  EEGInceptionMI
66
66
  EEGITNet
67
67
  EEGMiner
68
+ EEGNetv1
68
69
  EEGNetv4
69
70
  EEGNeX
70
71
  EEGResNet
@@ -42,10 +42,6 @@ curdir = os.path.dirname(__file__)
42
42
  sys.path.append(os.path.abspath(os.path.join(curdir, "..", "braindecode")))
43
43
  sys.path.append(os.path.abspath(os.path.join(curdir, "sphinxext")))
44
44
 
45
- import sphinx_design
46
-
47
- print(f"--- Sphinx is using sphinx_design version: {sphinx_design.__version__} ---")
48
-
49
45
  # Add any Sphinx extension module names here, as strings. They can be
50
46
  # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
51
47
  # ones.
@@ -59,9 +55,7 @@ extensions = [
59
55
  "sphinx.ext.ifconfig",
60
56
  "sphinx.ext.intersphinx",
61
57
  "sphinx.ext.githubpages",
62
- "sphinxcontrib.bibtex",
63
58
  "sphinx.ext.napoleon",
64
- "sphinx_autodoc_typehints",
65
59
  "sphinx_gallery.gen_gallery",
66
60
  "sphinx.ext.linkcode",
67
61
  "sphinx_design",
@@ -172,15 +166,15 @@ templates_path = ["_templates"]
172
166
  # source_suffix = ['.rst', '.md']
173
167
  source_suffix = ".rst"
174
168
 
175
-
169
+ rst_prolog = """
170
+ .. role:: tag(bdg-success)
171
+ """
176
172
  # The master toctree document.
177
173
  master_doc = "index"
178
174
 
179
175
  # General information about the project.
180
176
 
181
- bibtex_bibfiles = ["references.bib"]
182
- bibtex_reference_style = "author_year"
183
- bibtex_default_style = "unsrt"
177
+
184
178
  # -- Project information -----------------------------------------------------
185
179
 
186
180
  project = "Braindecode"
@@ -362,6 +356,7 @@ html_context = {
362
356
  }
363
357
 
364
358
  html_sidebars = {
359
+ "models_summary": [],
365
360
  "cite": [],
366
361
  "help": [],
367
362
  "whats_new": [],
@@ -396,7 +391,7 @@ latex_documents = [
396
391
  master_doc,
397
392
  "Braindecode.tex",
398
393
  "Braindecode",
399
- "Bruno Aristimunha",
394
+ "Robin Tibor Schirrmeister",
400
395
  "manual",
401
396
  ),
402
397
  ]
@@ -435,16 +430,6 @@ other_icons = (
435
430
  "cloud-download-alt",
436
431
  "wrench",
437
432
  "hourglass",
438
- # Add your new icons here
439
- "braille",
440
- "repeat",
441
- "lightbulb",
442
- "layer-group",
443
- "eye",
444
- "circle-nodes",
445
- "magnifying-glass-chart",
446
- "share-nodes",
447
- "clone",
448
433
  )
449
434
  icons = dict()
450
435
  for icon in brand_icons + fixed_icons + other_icons:
@@ -472,7 +457,7 @@ prolog += """
472
457
  prolog += """
473
458
  .. |ensp| unicode:: U+2002 .. EN SPACE
474
459
  """
475
- rst_prolog = prolog
460
+
476
461
  # -- Options for manual page output ---------------------------------------
477
462
 
478
463
  # One entry per manual page. List of tuples
@@ -42,7 +42,7 @@ Braindecode Homepage
42
42
  :hidden:
43
43
 
44
44
  Install <install/install>
45
- Models <models/models>
45
+ Models <models_summary>
46
46
  Cite <cite>
47
47
  Tutorial and Examples <auto_examples/index>
48
48
  API <api>
@@ -0,0 +1,134 @@
1
+ .. raw:: html
2
+
3
+ <style>
4
+ .tag {
5
+ display: inline-block;
6
+ background-color: #e0f7fa;
7
+ color: #00796b;
8
+ padding: 4px 8px;
9
+ margin: 2px;
10
+ border-radius: 4px;
11
+ font-size: 0.9em;
12
+ }
13
+ </style>
14
+ <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.css"/>
16
+
17
+ .. _models-summary:
18
+
19
+ Models Summary
20
+ ~~~~~~~~~~~~~~
21
+
22
+ This page offers a summary of many implemented models. Please note that this list may not be exhaustive. For the definitive and most current list, including detailed class documentation, please consult the :doc:`API documentation <api>`.
23
+
24
+ We are continually expanding this collection and welcome contributions! If you have implemented a model relevant to EEG, EcoG, or MEG analysis, consider adding it to Braindecode. See the "Submit a New Model" section below for details.
25
+
26
+ .. figure:: _static/model/models_analysis.png
27
+ :alt: Braindecode Models
28
+ :align: center
29
+
30
+ Visualization comparing the models based on their total number of parameters (left plot) and the primary experimental paradigm they were designed for (right plot).
31
+
32
+ Columns definitions:
33
+ - **Model**: The name of the model.
34
+ - **Paradigm**: The paradigm(s) the model is typically used for (e.g., Motor Imagery, P300, Sleep Staging). 'General' indicates applicability across multiple paradigms or no specific paradigm focus.
35
+ - **Type**: The model's primary function (e.g., Classification, Regression, Embedding).
36
+ - **Freq (Hz)**: The data sampling rate (in Hertz) the model is designed for. Note that this might be adaptable depending on the specific dataset and application.
37
+ - **Hyperparameters**: The mandatory hyperparameters required for instantiating the model class. These may include `n_chans` (number of channels), `n_outputs` (number of output classes or regression targets), `n_times` (number of time points in the input window), or `sfreq` (sampling frequency). Also, `n_times` can be derived implicitly by providing both `sfreq` and `input_window_seconds`.
38
+ - **#Parameters**: The approximate total number of trainable parameters in the model, calculated using a consistent configuration (see note below).
39
+
40
+ .. raw:: html
41
+
42
+ <!-- Dropdown filter container -->
43
+ <div id="custom-filters" style="margin-bottom: 15px;"></div>
44
+
45
+ .. raw:: html
46
+ :file: generated/models_summary_table.html
47
+
48
+ The parameter counts shown in the table were calculated using consistent hyperparameters for models within the same paradigm, based largely on Braindecode's default implementation values. These counts provide a relative comparison but may differ from those reported in the original publications due to variations in specific architectural details, input dimensions used in the paper, or calculation methods.
49
+
50
+ Submit a new model
51
+ ~~~~~~~~~~~~~~~~~~
52
+
53
+ Want to contribute a new model to Braindecode? Great! You can propose a new model by opening an `issue <braindecode-issues_>`_ (please include a link to the relevant publication or description) or, even better, directly submit your implementation via a `pull request <braindecode-pulls_>`_. We appreciate your contributions to expanding the library!
54
+
55
+ .. raw:: html
56
+
57
+ <script type="text/javascript" src="https://cdn.datatables.net/v/bm/dt-1.13.4/datatables.min.js"></script>
58
+ <script type="text/javascript">
59
+ $(document).ready(function () {
60
+ var table = $('.sortable').DataTable({
61
+ paging: false,
62
+ searching: true,
63
+ info: false,
64
+ language: {
65
+ search: "Filter models:"
66
+ }
67
+ });
68
+
69
+ var filterColumns = {
70
+ 1: "Select Paradigm",
71
+ 2: "Choose Model Type",
72
+ 4: "Select Required Hyperparameter"
73
+ };
74
+
75
+ var $filterContainer = $('#custom-filters');
76
+ var dropdowns = {};
77
+
78
+ $.each(filterColumns, function (colIdx, label) {
79
+ var select = $('<select><option value="" disabled selected>' + label + '</option></select>')
80
+ .css({ 'margin-right': '10px', 'padding': '5px', 'margin-bottom': '10px' });
81
+
82
+ var uniqueTags = new Set();
83
+
84
+ table.column(colIdx).data().each(function (d) {
85
+ if (d) {
86
+ var tags = [];
87
+ var $temp = $('<div>' + d + '</div>');
88
+ var $foundTags = $temp.find('.tag');
89
+
90
+ if ($foundTags.length > 0) {
91
+ $foundTags.each(function () {
92
+ var tag = $(this).text().trim();
93
+ if (tag) tags.push(tag);
94
+ });
95
+ } else {
96
+ var plainText = $temp.text();
97
+ tags = plainText.split(/,\s*|\s+/).map(function (tag) {
98
+ return tag.trim();
99
+ });
100
+ }
101
+
102
+ tags.forEach(function (tag) {
103
+ if (tag) uniqueTags.add(tag);
104
+ });
105
+ }
106
+ });
107
+
108
+ Array.from(uniqueTags).sort().forEach(function (tag) {
109
+ select.append('<option value="' + tag + '">' + tag + '</option>');
110
+ });
111
+
112
+ select.on('change', function () {
113
+ var val = $(this).val();
114
+ table.column(colIdx).search(val ? val : '', true, false).draw();
115
+ });
116
+
117
+ dropdowns[colIdx] = select;
118
+ $filterContainer.append(select);
119
+ });
120
+
121
+ var clearBtn = $('<button>Clear Filters</button>')
122
+ .css({ 'margin-left': '10px', 'padding': '5px 10px', 'cursor': 'pointer' })
123
+ .on('click', function () {
124
+ $.each(dropdowns, function (colIdx, select) {
125
+ select.prop('selectedIndex', 0);
126
+ table.column(colIdx).search('').draw();
127
+ });
128
+ });
129
+
130
+ $filterContainer.append(clearBtn);
131
+ });
132
+ </script>
133
+
134
+ .. include:: links.inc
@@ -24,11 +24,9 @@ Enhancements
24
24
  ~~~~~~~~~~~~
25
25
  - Improving the docstring for :class:`braindecode.models.EEGNetv4` (:gh:`768` by `Bruno Aristimunha`_)
26
26
  - Improving the docstring for :class:`braindecode.models.EEGConformer` (:gh:`769` by `Bruno Aristimunha`_)
27
- - Experimental BIDS Iterable Dataset support (:gh:`766` by `Bruno Aristimunha`_ and `Pierre Guetschel`_)
28
27
  - Improving the docstring for :class:`braindecode.models.ATCNet` (:gh:`771` by `Bruno Aristimunha`_)
29
28
  - Improving the docstring for :class:`braindecode.models.AttentionBaseNet` (:gh:`772` by `Bruno Aristimunha`_)
30
29
  - Improving the docstring for :class:`braindecode.models.EEGNeX` (:gh:`773` by `Bruno Aristimunha`_)
31
- - Massive refactor of the models webpage (:gh:`774` by `Bruno Aristimunha`_)
32
30
 
33
31
 
34
32
  API changes
@@ -43,7 +41,6 @@ Current 1.1.1 (stable)
43
41
 
44
42
  Enhancements
45
43
  ~~~~~~~~~~~~
46
- - Massive refactor of the model webpage
47
44
 
48
45
  API changes
49
46
  ~~~~~~~~~~~
@@ -75,9 +75,6 @@ tests = [
75
75
  docs = [
76
76
  'sphinx_gallery',
77
77
  'sphinx_rtd_theme',
78
- 'sphinx-autodoc-typehints',
79
- 'sphinx-autobuild',
80
- 'sphinxcontrib-bibtex',
81
78
  'pydata_sphinx_theme',
82
79
  'numpydoc',
83
80
  'memory_profiler',
@@ -87,8 +84,7 @@ docs = [
87
84
  'lightning',
88
85
  'seaborn',
89
86
  'pre-commit',
90
- 'openneuro-py',
91
- 'plotly',
87
+ 'openneuro-py'
92
88
  ]
93
89
  all = [
94
90
  "braindecode[moabb,tests,docs]"