braindecode 1.8.0.dev183370663__tar.gz → 1.8.1__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 (599) hide show
  1. braindecode-1.8.1/NOTICE.txt +66 -0
  2. {braindecode-1.8.0.dev183370663/braindecode.egg-info → braindecode-1.8.1}/PKG-INFO +8 -5
  3. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/README.rst +6 -3
  4. braindecode-1.8.1/braindecode/datasets/_notebook_viewer.py +255 -0
  5. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/base.py +3 -0
  6. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/functional/functions.py +4 -3
  7. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/__init__.py +6 -0
  8. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/atcnet.py +2 -2
  9. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/attn_sleep.py +0 -4
  10. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/base.py +28 -3
  11. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/brainmodule.py +1 -1
  12. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/ctnet.py +10 -7
  13. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/dance.py +2 -10
  14. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegconformer.py +1 -1
  15. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegminer.py +2 -1
  16. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegsimpleconv.py +9 -7
  17. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/emg2qwerty.py +9 -133
  18. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/ifnet.py +10 -6
  19. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/luna.py +31 -5
  20. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/medformer.py +1 -1
  21. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/meta_neuromotor.py +1 -1
  22. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/mvpformer.py +1 -1
  23. braindecode-1.8.1/braindecode/models/neuropose.py +440 -0
  24. braindecode-1.8.1/braindecode/models/sensingdynamics.py +461 -0
  25. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sleep_stager_blanco_2020.py +5 -9
  26. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sleep_stager_chambon_2018.py +1 -7
  27. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sparcnet.py +2 -2
  28. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sstdpn.py +1 -1
  29. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/summary.csv +4 -1
  30. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/tcformer.py +1 -1
  31. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/tidnet.py +1 -7
  32. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/usleep.py +3 -7
  33. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/util.py +37 -0
  34. braindecode-1.8.1/braindecode/models/vemg2pose.py +655 -0
  35. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/zuna.py +26 -12
  36. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/__init__.py +16 -2
  37. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/activation.py +14 -0
  38. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/blocks.py +213 -0
  39. braindecode-1.8.1/braindecode/version.py +1 -0
  40. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/__init__.py +6 -0
  41. braindecode-1.8.1/braindecode/visualization/activations.py +77 -0
  42. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1/braindecode.egg-info}/PKG-INFO +8 -5
  43. braindecode-1.8.1/braindecode.egg-info/SOURCES.txt +595 -0
  44. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode.egg-info/requires.txt +1 -1
  45. braindecode-1.8.1/docs/_build/html/_downloads/090305d06248840b75133975e5121f41/plot_sleep_staging_chambon2018.ipynb +302 -0
  46. braindecode-1.8.1/docs/_build/html/_downloads/0ada35f18bb95235ba2842270483081f/plot_finetune_foundation_model.ipynb +219 -0
  47. braindecode-1.8.1/docs/_build/html/_downloads/0f2bf063e08b7d05b80e0004fcbbb6f9/benchmark_lazy_eager_loading.ipynb +183 -0
  48. braindecode-1.8.1/docs/_build/html/_downloads/137d0b161de96c88644fd65258fc20b5/tutorial_create_fixed_window_length.ipynb +190 -0
  49. braindecode-1.8.1/docs/_build/html/_downloads/1c6590d134fa0befda654e89aa55b2ac/plot_benchmark_preprocessing.ipynb +104 -0
  50. braindecode-1.8.1/docs/_build/html/_downloads/1d879df548fa18be8c23d9ca0dc008d4/plot_data_augmentation.ipynb +259 -0
  51. braindecode-1.8.1/docs/_build/html/_downloads/2466f8ec5c733d0bd65e187b45d875cc/plot_data_augmentation_search.ipynb +302 -0
  52. braindecode-1.8.1/docs/_build/html/_downloads/263464a28477cf8decb861ae6e2e9be7/plot_how_train_test_and_tune.ipynb +375 -0
  53. braindecode-1.8.1/docs/_build/html/_downloads/3862cafd7f0d815e434319ffe525afc8/plot_bcic_iv_2a_moabb_cropped.ipynb +244 -0
  54. braindecode-1.8.1/docs/_build/html/_downloads/408ca4ffd0ea1f76faa9ef602734ac94/plot_tuh_eeg_corpus.ipynb +187 -0
  55. braindecode-1.8.1/docs/_build/html/_downloads/5030717acb00990b394b83314b0797d9/plot_bids_dataset_example.ipynb +97 -0
  56. braindecode-1.8.1/docs/_build/html/_downloads/64c99f99abefd72dcd2a3f5e7ddebfce/plot_channel_interpolation.ipynb +222 -0
  57. braindecode-1.8.1/docs/_build/html/_downloads/66ea18b3b9cf0802bbd32bb903ab554e/plot_temporal_generalization.ipynb +226 -0
  58. braindecode-1.8.1/docs/_build/html/_downloads/71f6b29d340c0ff57ee55b0da637518b/plot_interpretability.ipynb +266 -0
  59. braindecode-1.8.1/docs/_build/html/_downloads/75a73c7d94f3a671fd3dec28f4031ead/plot_regression.ipynb +212 -0
  60. braindecode-1.8.1/docs/_build/html/_downloads/84fbcd59a346e5e56758285122dc69e2/plot_sleep_staging_eldele2021.ipynb +302 -0
  61. braindecode-1.8.1/docs/_build/html/_downloads/8616a7f968141825e56ab3e3d59be449/plot_tuh_discrete_multitarget.ipynb +169 -0
  62. braindecode-1.8.1/docs/_build/html/_downloads/8b5ba06718764b959e8dea1dd0bb97df/plot_sleep_staging_usleep.ipynb +266 -0
  63. braindecode-1.8.1/docs/_build/html/_downloads/91651c9d4fde110b4a53f5775a91acc5/plot_mne_dataset_example.ipynb +104 -0
  64. braindecode-1.8.1/docs/_build/html/_downloads/93fdea8cbadaf0e3afa2eb2be3ebc483/bcic_iv_4_ecog_trial.ipynb +376 -0
  65. braindecode-1.8.1/docs/_build/html/_downloads/9a4447462c3b255ba7e5ca212bbadd52/plot_bcic_iv_2a_moabb_trial.ipynb +282 -0
  66. braindecode-1.8.1/docs/_build/html/_downloads/9ecad1eb1db853df0ba20dbb97303c02/plot_exca_config.ipynb +439 -0
  67. braindecode-1.8.1/docs/_build/html/_downloads/a2f12129facb042643a99d4b9de1886d/bcic_iv_4_ecog_cropped.ipynb +363 -0
  68. braindecode-1.8.1/docs/_build/html/_downloads/a39e4245738e55e0eb7084c545ed05bc/plot_hyperparameter_tuning_with_scikit-learn.ipynb +257 -0
  69. braindecode-1.8.1/docs/_build/html/_downloads/a6249715d3c30cb41c4af85938cca008/plot_moabb_dataset_example.ipynb +140 -0
  70. braindecode-1.8.1/docs/_build/html/_downloads/a868f9d41de95f5f6defc26e291cf4aa/plot_preprocessing_classes.ipynb +194 -0
  71. braindecode-1.8.1/docs/_build/html/_downloads/a86d0c5f3a882a069df1683a708d3e25/plot_train_in_pure_pytorch_and_pytorch_lightning.ipynb +250 -0
  72. braindecode-1.8.1/docs/_build/html/_downloads/aa8426d97090e7b3062c4e4732c3214a/plot_relative_positioning.ipynb +266 -0
  73. braindecode-1.8.1/docs/_build/html/_downloads/b7179beb2f9c065d6149a3b430876706/bids_dataset_example.ipynb +97 -0
  74. braindecode-1.8.1/docs/_build/html/_downloads/b9d19304ecd233ea7a79d4365316ea49/plot_load_save_datasets.ipynb +176 -0
  75. braindecode-1.8.1/docs/_build/html/_downloads/cb62940d13f700ed2b9e813705e9d437/plot_moabb_benchmark.ipynb +122 -0
  76. braindecode-1.8.1/docs/_build/html/_downloads/cd24c95e5e6c988ebb6ece50ac672ab5/plot_bcic_iv_2a_eegprep_cleaning.ipynb +271 -0
  77. braindecode-1.8.1/docs/_build/html/_downloads/f158ead3e4720f6f4685ff1d3f48dc15/plot_hub_integration.ipynb +201 -0
  78. braindecode-1.8.1/docs/_build/html/_downloads/f3c89d39e947a121c7920b4d415413a2/plot_split_dataset.ipynb +180 -0
  79. braindecode-1.8.1/docs/_build/html/_downloads/f7b38cac92c078838442753121efc297/plot_custom_dataset_example.ipynb +140 -0
  80. braindecode-1.8.1/docs/_build/html/_downloads/fa7c2c982eb044a92a764e44b7365fd6/plot_load_pretrained_models.ipynb +222 -0
  81. braindecode-1.8.1/docs/_build/html/_downloads/fff46913db5173d3ae22c1113acffb45/plot_basic_training_epochs.ipynb +237 -0
  82. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/api.rst +12 -0
  83. braindecode-1.8.1/docs/auto_examples/advanced_training/bcic_iv_4_ecog_cropped.ipynb +374 -0
  84. braindecode-1.8.1/docs/auto_examples/advanced_training/bcic_iv_4_ecog_cropped.rst +656 -0
  85. braindecode-1.8.1/docs/auto_examples/advanced_training/index.rst +191 -0
  86. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_data_augmentation.ipynb +259 -0
  87. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_data_augmentation.rst +2000 -0
  88. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_data_augmentation_search.ipynb +313 -0
  89. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_data_augmentation_search.rst +742 -0
  90. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_exca_config.ipynb +439 -0
  91. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_exca_config.rst +934 -0
  92. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_finetune_foundation_model.ipynb +230 -0
  93. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_finetune_foundation_model.rst +394 -0
  94. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_interpretability.ipynb +266 -0
  95. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_interpretability.rst +1295 -0
  96. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_moabb_benchmark.ipynb +122 -0
  97. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_moabb_benchmark.rst +327 -0
  98. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_relative_positioning.ipynb +277 -0
  99. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_relative_positioning.rst +689 -0
  100. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_temporal_generalization.ipynb +226 -0
  101. braindecode-1.8.1/docs/auto_examples/advanced_training/plot_temporal_generalization.rst +648 -0
  102. braindecode-1.8.1/docs/auto_examples/advanced_training/sg_execution_times.rst +61 -0
  103. braindecode-1.8.1/docs/auto_examples/applied_examples/bcic_iv_4_ecog_trial.ipynb +387 -0
  104. braindecode-1.8.1/docs/auto_examples/applied_examples/bcic_iv_4_ecog_trial.rst +603 -0
  105. braindecode-1.8.1/docs/auto_examples/applied_examples/index.rst +155 -0
  106. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_dance_event_detection.ipynb +223 -0
  107. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_dance_event_detection.rst +819 -0
  108. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_chambon2018.ipynb +313 -0
  109. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_chambon2018.rst +546 -0
  110. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_eldele2021.ipynb +313 -0
  111. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_eldele2021.rst +579 -0
  112. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_usleep.ipynb +277 -0
  113. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_sleep_staging_usleep.rst +493 -0
  114. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_tuh_eeg_corpus.ipynb +198 -0
  115. braindecode-1.8.1/docs/auto_examples/applied_examples/plot_tuh_eeg_corpus.rst +435 -0
  116. braindecode-1.8.1/docs/auto_examples/applied_examples/sg_execution_times.rst +55 -0
  117. braindecode-1.8.1/docs/auto_examples/applied_examples/tutorial_create_fixed_window_length.ipynb +201 -0
  118. braindecode-1.8.1/docs/auto_examples/applied_examples/tutorial_create_fixed_window_length.rst +365 -0
  119. braindecode-1.8.1/docs/auto_examples/datasets_io/benchmark_lazy_eager_loading.ipynb +194 -0
  120. braindecode-1.8.1/docs/auto_examples/datasets_io/benchmark_lazy_eager_loading.rst +504 -0
  121. braindecode-1.8.1/docs/auto_examples/datasets_io/bids_dataset_example.ipynb +108 -0
  122. braindecode-1.8.1/docs/auto_examples/datasets_io/bids_dataset_example.rst +110 -0
  123. braindecode-1.8.1/docs/auto_examples/datasets_io/index.rst +209 -0
  124. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_benchmark_preprocessing.ipynb +104 -0
  125. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_benchmark_preprocessing.rst +540 -0
  126. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_bids_dataset_example.ipynb +97 -0
  127. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_bids_dataset_example.rst +3591 -0
  128. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_custom_dataset_example.ipynb +140 -0
  129. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_custom_dataset_example.rst +323 -0
  130. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_hub_integration.ipynb +201 -0
  131. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_hub_integration.rst +696 -0
  132. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_load_save_datasets.ipynb +176 -0
  133. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_load_save_datasets.rst +507 -0
  134. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_mne_dataset_example.ipynb +104 -0
  135. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_mne_dataset_example.rst +347 -0
  136. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_moabb_dataset_example.ipynb +140 -0
  137. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_moabb_dataset_example.rst +320 -0
  138. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_split_dataset.ipynb +180 -0
  139. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_split_dataset.rst +835 -0
  140. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_tuh_discrete_multitarget.ipynb +169 -0
  141. braindecode-1.8.1/docs/auto_examples/datasets_io/plot_tuh_discrete_multitarget.rst +379 -0
  142. braindecode-1.8.1/docs/auto_examples/datasets_io/sg_execution_times.rst +64 -0
  143. braindecode-1.8.1/docs/auto_examples/index.rst +782 -0
  144. braindecode-1.8.1/docs/auto_examples/model_building/index.rst +245 -0
  145. braindecode-1.8.1/docs/auto_examples/model_building/plot_basic_training_epochs.ipynb +237 -0
  146. braindecode-1.8.1/docs/auto_examples/model_building/plot_basic_training_epochs.rst +1936 -0
  147. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_eegprep_cleaning.ipynb +282 -0
  148. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_eegprep_cleaning.rst +556 -0
  149. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_moabb_cropped.ipynb +255 -0
  150. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_moabb_cropped.rst +545 -0
  151. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_moabb_trial.ipynb +293 -0
  152. braindecode-1.8.1/docs/auto_examples/model_building/plot_bcic_iv_2a_moabb_trial.rst +507 -0
  153. braindecode-1.8.1/docs/auto_examples/model_building/plot_channel_interpolation.ipynb +233 -0
  154. braindecode-1.8.1/docs/auto_examples/model_building/plot_channel_interpolation.rst +474 -0
  155. braindecode-1.8.1/docs/auto_examples/model_building/plot_heterogeneous_montage_training.ipynb +151 -0
  156. braindecode-1.8.1/docs/auto_examples/model_building/plot_heterogeneous_montage_training.rst +260 -0
  157. braindecode-1.8.1/docs/auto_examples/model_building/plot_how_train_test_and_tune.ipynb +375 -0
  158. braindecode-1.8.1/docs/auto_examples/model_building/plot_how_train_test_and_tune.rst +1101 -0
  159. braindecode-1.8.1/docs/auto_examples/model_building/plot_hyperparameter_tuning_with_scikit-learn.ipynb +257 -0
  160. braindecode-1.8.1/docs/auto_examples/model_building/plot_hyperparameter_tuning_with_scikit-learn.rst +656 -0
  161. braindecode-1.8.1/docs/auto_examples/model_building/plot_load_pretrained_models.ipynb +233 -0
  162. braindecode-1.8.1/docs/auto_examples/model_building/plot_load_pretrained_models.rst +816 -0
  163. braindecode-1.8.1/docs/auto_examples/model_building/plot_preprocessing_classes.ipynb +194 -0
  164. braindecode-1.8.1/docs/auto_examples/model_building/plot_preprocessing_classes.rst +990 -0
  165. braindecode-1.8.1/docs/auto_examples/model_building/plot_regression.ipynb +212 -0
  166. braindecode-1.8.1/docs/auto_examples/model_building/plot_regression.rst +547 -0
  167. braindecode-1.8.1/docs/auto_examples/model_building/plot_train_in_pure_pytorch_and_pytorch_lightning.ipynb +250 -0
  168. braindecode-1.8.1/docs/auto_examples/model_building/plot_train_in_pure_pytorch_and_pytorch_lightning.rst +698 -0
  169. braindecode-1.8.1/docs/auto_examples/model_building/sg_execution_times.rst +64 -0
  170. braindecode-1.8.1/docs/auto_examples/sg_execution_times.rst +37 -0
  171. braindecode-1.8.1/docs/generated/activation/braindecode.modules.GatedLinearUnit.rst +130 -0
  172. braindecode-1.8.1/docs/generated/activation/braindecode.modules.LogActivation.rst +130 -0
  173. braindecode-1.8.1/docs/generated/activation/braindecode.modules.SafeLog.rst +135 -0
  174. braindecode-1.8.1/docs/generated/attention/braindecode.modules.CAT.rst +130 -0
  175. braindecode-1.8.1/docs/generated/attention/braindecode.modules.CATLite.rst +130 -0
  176. braindecode-1.8.1/docs/generated/attention/braindecode.modules.CBAM.rst +130 -0
  177. braindecode-1.8.1/docs/generated/attention/braindecode.modules.ECA.rst +130 -0
  178. braindecode-1.8.1/docs/generated/attention/braindecode.modules.EncNet.rst +130 -0
  179. braindecode-1.8.1/docs/generated/attention/braindecode.modules.FCA.rst +137 -0
  180. braindecode-1.8.1/docs/generated/attention/braindecode.modules.GCT.rst +130 -0
  181. braindecode-1.8.1/docs/generated/attention/braindecode.modules.GSoP.rst +130 -0
  182. braindecode-1.8.1/docs/generated/attention/braindecode.modules.GatherExcite.rst +130 -0
  183. braindecode-1.8.1/docs/generated/attention/braindecode.modules.MultiHeadAttention.rst +130 -0
  184. braindecode-1.8.1/docs/generated/attention/braindecode.modules.SRM.rst +130 -0
  185. braindecode-1.8.1/docs/generated/attention/braindecode.modules.SqueezeAndExcitation.rst +130 -0
  186. braindecode-1.8.1/docs/generated/blocks/braindecode.modules.FeedForwardBlock.rst +127 -0
  187. braindecode-1.8.1/docs/generated/blocks/braindecode.modules.InceptionBlock.rst +130 -0
  188. braindecode-1.8.1/docs/generated/blocks/braindecode.modules.MLP.rst +127 -0
  189. braindecode-1.8.1/docs/generated/blocks/braindecode.modules.PatchTokenizer.rst +130 -0
  190. braindecode-1.8.1/docs/generated/braindecode.augmentation.AmplitudeScale.rst +139 -0
  191. braindecode-1.8.1/docs/generated/braindecode.augmentation.AugmentedDataLoader.rst +21 -0
  192. braindecode-1.8.1/docs/generated/braindecode.augmentation.BandstopFilter.rst +139 -0
  193. braindecode-1.8.1/docs/generated/braindecode.augmentation.ChannelsDropout.rst +139 -0
  194. braindecode-1.8.1/docs/generated/braindecode.augmentation.ChannelsReref.rst +139 -0
  195. braindecode-1.8.1/docs/generated/braindecode.augmentation.ChannelsShuffle.rst +139 -0
  196. braindecode-1.8.1/docs/generated/braindecode.augmentation.ChannelsSymmetry.rst +139 -0
  197. braindecode-1.8.1/docs/generated/braindecode.augmentation.Compose.rst +132 -0
  198. braindecode-1.8.1/docs/generated/braindecode.augmentation.FTSurrogate.rst +139 -0
  199. braindecode-1.8.1/docs/generated/braindecode.augmentation.FrequencyShift.rst +139 -0
  200. braindecode-1.8.1/docs/generated/braindecode.augmentation.GaussianNoise.rst +139 -0
  201. braindecode-1.8.1/docs/generated/braindecode.augmentation.IdentityTransform.rst +134 -0
  202. braindecode-1.8.1/docs/generated/braindecode.augmentation.MaskEncoding.rst +139 -0
  203. braindecode-1.8.1/docs/generated/braindecode.augmentation.Mixup.rst +139 -0
  204. braindecode-1.8.1/docs/generated/braindecode.augmentation.SegmentationReconstruction.rst +139 -0
  205. braindecode-1.8.1/docs/generated/braindecode.augmentation.SensorsRotation.rst +139 -0
  206. braindecode-1.8.1/docs/generated/braindecode.augmentation.SensorsXRotation.rst +123 -0
  207. braindecode-1.8.1/docs/generated/braindecode.augmentation.SensorsYRotation.rst +123 -0
  208. braindecode-1.8.1/docs/generated/braindecode.augmentation.SensorsZRotation.rst +123 -0
  209. braindecode-1.8.1/docs/generated/braindecode.augmentation.SignFlip.rst +134 -0
  210. braindecode-1.8.1/docs/generated/braindecode.augmentation.SmoothTimeMask.rst +139 -0
  211. braindecode-1.8.1/docs/generated/braindecode.augmentation.TimeReverse.rst +134 -0
  212. braindecode-1.8.1/docs/generated/braindecode.augmentation.Transform.rst +137 -0
  213. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.amplitude_scale.rst +12 -0
  214. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.bandstop_filter.rst +12 -0
  215. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.channels_dropout.rst +12 -0
  216. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.channels_permute.rst +12 -0
  217. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.channels_rereference.rst +12 -0
  218. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.channels_shuffle.rst +12 -0
  219. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.frequency_shift.rst +12 -0
  220. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.ft_surrogate.rst +12 -0
  221. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.gaussian_noise.rst +12 -0
  222. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.identity.rst +12 -0
  223. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.mask_encoding.rst +12 -0
  224. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.mixup.rst +12 -0
  225. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.segmentation_reconstruction.rst +12 -0
  226. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.sensors_rotation.rst +12 -0
  227. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.sign_flip.rst +12 -0
  228. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.smooth_time_mask.rst +12 -0
  229. braindecode-1.8.1/docs/generated/braindecode.augmentation.functional.time_reverse.rst +12 -0
  230. braindecode-1.8.1/docs/generated/braindecode.classifier.EEGClassifier.rst +166 -0
  231. braindecode-1.8.1/docs/generated/braindecode.datasets.BCICompetitionIVDataset4.rst +52 -0
  232. braindecode-1.8.1/docs/generated/braindecode.datasets.BNCI2014_001.rst +39 -0
  233. braindecode-1.8.1/docs/generated/braindecode.datasets.BaseConcatDataset.rst +80 -0
  234. braindecode-1.8.1/docs/generated/braindecode.datasets.CHBMIT.rst +39 -0
  235. braindecode-1.8.1/docs/generated/braindecode.datasets.HGD.rst +39 -0
  236. braindecode-1.8.1/docs/generated/braindecode.datasets.MOABBDataset.rst +39 -0
  237. braindecode-1.8.1/docs/generated/braindecode.datasets.NMT.rst +39 -0
  238. braindecode-1.8.1/docs/generated/braindecode.datasets.RawDataset.rst +21 -0
  239. braindecode-1.8.1/docs/generated/braindecode.datasets.RecordDataset.rst +32 -0
  240. braindecode-1.8.1/docs/generated/braindecode.datasets.SIENA.rst +39 -0
  241. braindecode-1.8.1/docs/generated/braindecode.datasets.SleepPhysionet.rst +39 -0
  242. braindecode-1.8.1/docs/generated/braindecode.datasets.SleepPhysionetChallenge2018.rst +39 -0
  243. braindecode-1.8.1/docs/generated/braindecode.datasets.TUH.rst +39 -0
  244. braindecode-1.8.1/docs/generated/braindecode.datasets.TUHAbnormal.rst +39 -0
  245. braindecode-1.8.1/docs/generated/braindecode.datasets.TUHEvents.rst +39 -0
  246. braindecode-1.8.1/docs/generated/braindecode.datasets.WindowsDataset.rst +21 -0
  247. braindecode-1.8.1/docs/generated/braindecode.datasets.bids.BIDSDataset.rst +39 -0
  248. braindecode-1.8.1/docs/generated/braindecode.datasets.bids.BIDSEpochsDataset.rst +39 -0
  249. braindecode-1.8.1/docs/generated/braindecode.datasets.bids.BIDSIterableDataset.rst +19 -0
  250. braindecode-1.8.1/docs/generated/braindecode.datasets.bids.HubDatasetMixin.rst +39 -0
  251. braindecode-1.8.1/docs/generated/braindecode.datasets.create_from_X_y.rst +12 -0
  252. braindecode-1.8.1/docs/generated/braindecode.datasets.create_from_mne_epochs.rst +12 -0
  253. braindecode-1.8.1/docs/generated/braindecode.datasets.create_from_mne_raw.rst +12 -0
  254. braindecode-1.8.1/docs/generated/braindecode.datautil.infer_signal_properties.rst +12 -0
  255. braindecode-1.8.1/docs/generated/braindecode.datautil.load_concat_dataset.rst +12 -0
  256. braindecode-1.8.1/docs/generated/braindecode.datautil.save_concat_dataset.rst +12 -0
  257. braindecode-1.8.1/docs/generated/braindecode.functional.drop_path.rst +12 -0
  258. braindecode-1.8.1/docs/generated/braindecode.functional.glorot_weight_zero_bias.rst +12 -0
  259. braindecode-1.8.1/docs/generated/braindecode.functional.hilbert_freq.rst +12 -0
  260. braindecode-1.8.1/docs/generated/braindecode.functional.identity.rst +12 -0
  261. braindecode-1.8.1/docs/generated/braindecode.functional.plv_time.rst +12 -0
  262. braindecode-1.8.1/docs/generated/braindecode.functional.rescale_parameter.rst +12 -0
  263. braindecode-1.8.1/docs/generated/braindecode.functional.safe_log.rst +12 -0
  264. braindecode-1.8.1/docs/generated/braindecode.functional.sinusoidal_positional_encoding.rst +12 -0
  265. braindecode-1.8.1/docs/generated/braindecode.functional.square.rst +12 -0
  266. braindecode-1.8.1/docs/generated/braindecode.models.ATCNet.rst +157 -0
  267. braindecode-1.8.1/docs/generated/braindecode.models.AttentionBaseNet.rst +150 -0
  268. braindecode-1.8.1/docs/generated/braindecode.models.AttnSleep.rst +150 -0
  269. braindecode-1.8.1/docs/generated/braindecode.models.BDTCN.rst +150 -0
  270. braindecode-1.8.1/docs/generated/braindecode.models.BENDR.rst +155 -0
  271. braindecode-1.8.1/docs/generated/braindecode.models.BIOT.rst +155 -0
  272. braindecode-1.8.1/docs/generated/braindecode.models.BrainModule.rst +150 -0
  273. braindecode-1.8.1/docs/generated/braindecode.models.CBraMod.rst +155 -0
  274. braindecode-1.8.1/docs/generated/braindecode.models.CTNet.rst +150 -0
  275. braindecode-1.8.1/docs/generated/braindecode.models.CodeBrain.rst +155 -0
  276. braindecode-1.8.1/docs/generated/braindecode.models.ContraWR.rst +150 -0
  277. braindecode-1.8.1/docs/generated/braindecode.models.DGCNN.rst +150 -0
  278. braindecode-1.8.1/docs/generated/braindecode.models.Deep4Net.rst +147 -0
  279. braindecode-1.8.1/docs/generated/braindecode.models.DeepSleepNet.rst +150 -0
  280. braindecode-1.8.1/docs/generated/braindecode.models.EEGConformer.rst +157 -0
  281. braindecode-1.8.1/docs/generated/braindecode.models.EEGDINO.rst +155 -0
  282. braindecode-1.8.1/docs/generated/braindecode.models.EEGITNet.rst +147 -0
  283. braindecode-1.8.1/docs/generated/braindecode.models.EEGInceptionERP.rst +147 -0
  284. braindecode-1.8.1/docs/generated/braindecode.models.EEGInceptionMI.rst +150 -0
  285. braindecode-1.8.1/docs/generated/braindecode.models.EEGMiner.rst +150 -0
  286. braindecode-1.8.1/docs/generated/braindecode.models.EEGModuleMixin.rst +82 -0
  287. braindecode-1.8.1/docs/generated/braindecode.models.EEGNeX.rst +150 -0
  288. braindecode-1.8.1/docs/generated/braindecode.models.EEGNet.rst +147 -0
  289. braindecode-1.8.1/docs/generated/braindecode.models.EEGPT.rst +162 -0
  290. braindecode-1.8.1/docs/generated/braindecode.models.EEGSimpleConv.rst +150 -0
  291. braindecode-1.8.1/docs/generated/braindecode.models.EEGSym.rst +150 -0
  292. braindecode-1.8.1/docs/generated/braindecode.models.EEGTCNet.rst +150 -0
  293. braindecode-1.8.1/docs/generated/braindecode.models.EMG2QwertyNet.rst +167 -0
  294. braindecode-1.8.1/docs/generated/braindecode.models.FBCNet.rst +150 -0
  295. braindecode-1.8.1/docs/generated/braindecode.models.FBLightConvNet.rst +150 -0
  296. braindecode-1.8.1/docs/generated/braindecode.models.FBMSNet.rst +150 -0
  297. braindecode-1.8.1/docs/generated/braindecode.models.IFNet.rst +150 -0
  298. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedBENDR.rst +150 -0
  299. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedBIOT.rst +150 -0
  300. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedEEGPT.rst +152 -0
  301. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedLaBraM.rst +160 -0
  302. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedModel.rst +12 -0
  303. braindecode-1.8.1/docs/generated/braindecode.models.InterpolatedSignalJEPA.rst +150 -0
  304. braindecode-1.8.1/docs/generated/braindecode.models.LUNA.rst +185 -0
  305. braindecode-1.8.1/docs/generated/braindecode.models.Labram.rst +190 -0
  306. braindecode-1.8.1/docs/generated/braindecode.models.MEDFormer.rst +150 -0
  307. braindecode-1.8.1/docs/generated/braindecode.models.MSVTNet.rst +150 -0
  308. braindecode-1.8.1/docs/generated/braindecode.models.MetaNeuromotorHand.rst +167 -0
  309. braindecode-1.8.1/docs/generated/braindecode.models.PBT.rst +150 -0
  310. braindecode-1.8.1/docs/generated/braindecode.models.REVE.rst +162 -0
  311. braindecode-1.8.1/docs/generated/braindecode.models.SCCNet.rst +150 -0
  312. braindecode-1.8.1/docs/generated/braindecode.models.SPARCNet.rst +150 -0
  313. braindecode-1.8.1/docs/generated/braindecode.models.SSTDPN.rst +150 -0
  314. braindecode-1.8.1/docs/generated/braindecode.models.STEEGFormer.rst +155 -0
  315. braindecode-1.8.1/docs/generated/braindecode.models.ShallowFBCSPNet.rst +147 -0
  316. braindecode-1.8.1/docs/generated/braindecode.models.SignalJEPA.rst +150 -0
  317. braindecode-1.8.1/docs/generated/braindecode.models.SignalJEPA_Contextual.rst +160 -0
  318. braindecode-1.8.1/docs/generated/braindecode.models.SignalJEPA_PostLocal.rst +160 -0
  319. braindecode-1.8.1/docs/generated/braindecode.models.SignalJEPA_PreLocal.rst +160 -0
  320. braindecode-1.8.1/docs/generated/braindecode.models.SincShallowNet.rst +150 -0
  321. braindecode-1.8.1/docs/generated/braindecode.models.SleepStagerBlanco2020.rst +150 -0
  322. braindecode-1.8.1/docs/generated/braindecode.models.SleepStagerChambon2018.rst +150 -0
  323. braindecode-1.8.1/docs/generated/braindecode.models.SyncNet.rst +150 -0
  324. braindecode-1.8.1/docs/generated/braindecode.models.TCFormer.rst +150 -0
  325. braindecode-1.8.1/docs/generated/braindecode.models.TIDNet.rst +150 -0
  326. braindecode-1.8.1/docs/generated/braindecode.models.TSception.rst +150 -0
  327. braindecode-1.8.1/docs/generated/braindecode.models.USleep.rst +150 -0
  328. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AddChannels.rst +25 -0
  329. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AddEvents.rst +25 -0
  330. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AddProj.rst +25 -0
  331. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AddReferenceChannels.rst +25 -0
  332. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AnnotateAmplitude.rst +38 -0
  333. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AnnotateBreak.rst +38 -0
  334. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AnnotateMovement.rst +38 -0
  335. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AnnotateMuscleZscore.rst +38 -0
  336. braindecode-1.8.1/docs/generated/braindecode.preprocessing.AnnotateNan.rst +38 -0
  337. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Anonymize.rst +25 -0
  338. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ApplyGradientCompensation.rst +25 -0
  339. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ApplyHilbert.rst +25 -0
  340. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ApplyProj.rst +25 -0
  341. braindecode-1.8.1/docs/generated/braindecode.preprocessing.CombineChannels.rst +38 -0
  342. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ComputeBridgedElectrodes.rst +38 -0
  343. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ComputeCurrentSourceDensity.rst +38 -0
  344. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Crop.rst +25 -0
  345. braindecode-1.8.1/docs/generated/braindecode.preprocessing.CropByAnnotations.rst +25 -0
  346. braindecode-1.8.1/docs/generated/braindecode.preprocessing.DelProj.rst +25 -0
  347. braindecode-1.8.1/docs/generated/braindecode.preprocessing.DropChannels.rst +25 -0
  348. braindecode-1.8.1/docs/generated/braindecode.preprocessing.EEGPrep.rst +38 -0
  349. braindecode-1.8.1/docs/generated/braindecode.preprocessing.EqualizeBads.rst +38 -0
  350. braindecode-1.8.1/docs/generated/braindecode.preprocessing.EqualizeChannels.rst +38 -0
  351. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Filter.rst +25 -0
  352. braindecode-1.8.1/docs/generated/braindecode.preprocessing.FilterData.rst +38 -0
  353. braindecode-1.8.1/docs/generated/braindecode.preprocessing.FindBadChannelsLof.rst +38 -0
  354. braindecode-1.8.1/docs/generated/braindecode.preprocessing.FixMagCoilTypes.rst +25 -0
  355. braindecode-1.8.1/docs/generated/braindecode.preprocessing.FixStimArtifact.rst +38 -0
  356. braindecode-1.8.1/docs/generated/braindecode.preprocessing.InterpolateBads.rst +25 -0
  357. braindecode-1.8.1/docs/generated/braindecode.preprocessing.InterpolateBridgedElectrodes.rst +38 -0
  358. braindecode-1.8.1/docs/generated/braindecode.preprocessing.InterpolateTo.rst +25 -0
  359. braindecode-1.8.1/docs/generated/braindecode.preprocessing.MaxwellFilter.rst +38 -0
  360. braindecode-1.8.1/docs/generated/braindecode.preprocessing.NotchFilter.rst +25 -0
  361. braindecode-1.8.1/docs/generated/braindecode.preprocessing.OversampledTemporalProjection.rst +38 -0
  362. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Pick.rst +25 -0
  363. braindecode-1.8.1/docs/generated/braindecode.preprocessing.PickChannels.rst +25 -0
  364. braindecode-1.8.1/docs/generated/braindecode.preprocessing.PickTypes.rst +25 -0
  365. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Preprocessor.rst +46 -0
  366. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RealignRaw.rst +38 -0
  367. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RegressArtifact.rst +38 -0
  368. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ReinterpolateRemovedChannels.rst +38 -0
  369. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveBadChannels.rst +38 -0
  370. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveBadChannelsNoLocs.rst +38 -0
  371. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveBadWindows.rst +38 -0
  372. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveBursts.rst +38 -0
  373. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveCommonAverageReference.rst +38 -0
  374. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveDCOffset.rst +38 -0
  375. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveDrifts.rst +38 -0
  376. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RemoveFlatChannels.rst +38 -0
  377. braindecode-1.8.1/docs/generated/braindecode.preprocessing.RenameChannels.rst +25 -0
  378. braindecode-1.8.1/docs/generated/braindecode.preprocessing.ReorderChannels.rst +25 -0
  379. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Resample.rst +25 -0
  380. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Resampling.rst +38 -0
  381. braindecode-1.8.1/docs/generated/braindecode.preprocessing.Rescale.rst +25 -0
  382. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SavgolFilter.rst +25 -0
  383. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetAnnotations.rst +25 -0
  384. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetBipolarReference.rst +38 -0
  385. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetChannelTypes.rst +25 -0
  386. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetEEGReference.rst +25 -0
  387. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetMeasDate.rst +25 -0
  388. braindecode-1.8.1/docs/generated/braindecode.preprocessing.SetMontage.rst +25 -0
  389. braindecode-1.8.1/docs/generated/braindecode.preprocessing.create_fixed_length_windows.rst +12 -0
  390. braindecode-1.8.1/docs/generated/braindecode.preprocessing.create_windows_from_events.rst +12 -0
  391. braindecode-1.8.1/docs/generated/braindecode.preprocessing.create_windows_from_target_channels.rst +12 -0
  392. braindecode-1.8.1/docs/generated/braindecode.preprocessing.exponential_moving_demean.rst +12 -0
  393. braindecode-1.8.1/docs/generated/braindecode.preprocessing.exponential_moving_standardize.rst +12 -0
  394. braindecode-1.8.1/docs/generated/braindecode.preprocessing.filterbank.rst +12 -0
  395. braindecode-1.8.1/docs/generated/braindecode.preprocessing.preprocess.rst +12 -0
  396. braindecode-1.8.1/docs/generated/braindecode.regressor.EEGRegressor.rst +161 -0
  397. braindecode-1.8.1/docs/generated/braindecode.samplers.BalancedSequenceSampler.rst +36 -0
  398. braindecode-1.8.1/docs/generated/braindecode.samplers.DistributedRecordingSampler.rst +41 -0
  399. braindecode-1.8.1/docs/generated/braindecode.samplers.DistributedRelativePositioningSampler.rst +38 -0
  400. braindecode-1.8.1/docs/generated/braindecode.samplers.RecordingSampler.rst +39 -0
  401. braindecode-1.8.1/docs/generated/braindecode.samplers.RelativePositioningSampler.rst +36 -0
  402. braindecode-1.8.1/docs/generated/braindecode.samplers.SequenceSampler.rst +23 -0
  403. braindecode-1.8.1/docs/generated/braindecode.training.CroppedLoss.rst +130 -0
  404. braindecode-1.8.1/docs/generated/braindecode.training.CroppedTimeSeriesEpochScoring.rst +52 -0
  405. braindecode-1.8.1/docs/generated/braindecode.training.CroppedTrialEpochScoring.rst +57 -0
  406. braindecode-1.8.1/docs/generated/braindecode.training.DanceLoss.rst +130 -0
  407. braindecode-1.8.1/docs/generated/braindecode.training.PostEpochTrainScoring.rst +52 -0
  408. braindecode-1.8.1/docs/generated/braindecode.training.TimeSeriesLoss.rst +130 -0
  409. braindecode-1.8.1/docs/generated/braindecode.training.f1_event.rst +12 -0
  410. braindecode-1.8.1/docs/generated/braindecode.training.mixup_criterion.rst +12 -0
  411. braindecode-1.8.1/docs/generated/braindecode.training.predict_trials.rst +12 -0
  412. braindecode-1.8.1/docs/generated/braindecode.training.trial_preds_from_window_preds.rst +12 -0
  413. braindecode-1.8.1/docs/generated/braindecode.util.set_random_seeds.rst +12 -0
  414. braindecode-1.8.1/docs/generated/braindecode.visualization.METRIC_NAMES.rst +6 -0
  415. braindecode-1.8.1/docs/generated/braindecode.visualization.SSIM_METRIC_NAMES.rst +6 -0
  416. braindecode-1.8.1/docs/generated/braindecode.visualization.amplitude_gradients.rst +12 -0
  417. braindecode-1.8.1/docs/generated/braindecode.visualization.amplitude_gradients_per_trial.rst +12 -0
  418. braindecode-1.8.1/docs/generated/braindecode.visualization.cascading_layer_reset.rst +12 -0
  419. braindecode-1.8.1/docs/generated/braindecode.visualization.compute_metrics.rst +12 -0
  420. braindecode-1.8.1/docs/generated/braindecode.visualization.compute_ssim_metrics.rst +12 -0
  421. braindecode-1.8.1/docs/generated/braindecode.visualization.deconvolution.rst +12 -0
  422. braindecode-1.8.1/docs/generated/braindecode.visualization.deep_lift.rst +12 -0
  423. braindecode-1.8.1/docs/generated/braindecode.visualization.guided_backprop.rst +12 -0
  424. braindecode-1.8.1/docs/generated/braindecode.visualization.input_x_gradient.rst +12 -0
  425. braindecode-1.8.1/docs/generated/braindecode.visualization.integrated_gradients.rst +12 -0
  426. braindecode-1.8.1/docs/generated/braindecode.visualization.layer_grad_cam.rst +12 -0
  427. braindecode-1.8.1/docs/generated/braindecode.visualization.lrp.rst +12 -0
  428. braindecode-1.8.1/docs/generated/braindecode.visualization.plot_confusion_matrix.rst +12 -0
  429. braindecode-1.8.1/docs/generated/braindecode.visualization.project_to_topomap.rst +12 -0
  430. braindecode-1.8.1/docs/generated/braindecode.visualization.random_target.rst +12 -0
  431. braindecode-1.8.1/docs/generated/braindecode.visualization.saliency.rst +12 -0
  432. braindecode-1.8.1/docs/generated/convolution/braindecode.modules.AvgPool2dWithConv.rst +130 -0
  433. braindecode-1.8.1/docs/generated/convolution/braindecode.modules.CausalConv1d.rst +132 -0
  434. braindecode-1.8.1/docs/generated/convolution/braindecode.modules.CombinedConv.rst +130 -0
  435. braindecode-1.8.1/docs/generated/convolution/braindecode.modules.Conv2dWithConstraint.rst +121 -0
  436. braindecode-1.8.1/docs/generated/convolution/braindecode.modules.DepthwiseConv2d.rst +121 -0
  437. braindecode-1.8.1/docs/generated/filter/braindecode.modules.ChannelInterpolationLayer.rst +130 -0
  438. braindecode-1.8.1/docs/generated/filter/braindecode.modules.FilterBankLayer.rst +130 -0
  439. braindecode-1.8.1/docs/generated/filter/braindecode.modules.GeneralizedGaussianFilter.rst +144 -0
  440. braindecode-1.8.1/docs/generated/layers/braindecode.modules.ChannelMerger.rst +130 -0
  441. braindecode-1.8.1/docs/generated/layers/braindecode.modules.Chomp1d.rst +135 -0
  442. braindecode-1.8.1/docs/generated/layers/braindecode.modules.DropPath.rst +135 -0
  443. braindecode-1.8.1/docs/generated/layers/braindecode.modules.Ensure4d.rst +130 -0
  444. braindecode-1.8.1/docs/generated/layers/braindecode.modules.FourierEmb.rst +130 -0
  445. braindecode-1.8.1/docs/generated/layers/braindecode.modules.SubjectLayers.rst +130 -0
  446. braindecode-1.8.1/docs/generated/layers/braindecode.modules.TimeDistributed.rst +130 -0
  447. braindecode-1.8.1/docs/generated/linear/braindecode.modules.LinearWithConstraint.rst +121 -0
  448. braindecode-1.8.1/docs/generated/linear/braindecode.modules.MaxNormLinear.rst +121 -0
  449. braindecode-1.8.1/docs/generated/stats/braindecode.modules.LogPowerLayer.rst +6 -0
  450. braindecode-1.8.1/docs/generated/stats/braindecode.modules.LogVarLayer.rst +6 -0
  451. braindecode-1.8.1/docs/generated/stats/braindecode.modules.MaxLayer.rst +6 -0
  452. braindecode-1.8.1/docs/generated/stats/braindecode.modules.MeanLayer.rst +6 -0
  453. braindecode-1.8.1/docs/generated/stats/braindecode.modules.StatLayer.rst +130 -0
  454. braindecode-1.8.1/docs/generated/stats/braindecode.modules.StdLayer.rst +6 -0
  455. braindecode-1.8.1/docs/generated/stats/braindecode.modules.VarLayer.rst +6 -0
  456. braindecode-1.8.1/docs/generated/util/braindecode.modules.aggregate_probas.rst +12 -0
  457. braindecode-1.8.1/docs/generated/wrapper/braindecode.modules.Expression.rst +130 -0
  458. braindecode-1.8.1/docs/generated/wrapper/braindecode.modules.IntermediateOutputWrapper.rst +130 -0
  459. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/whats_new.rst +67 -2
  460. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/pyproject.toml +1 -1
  461. braindecode-1.8.0.dev183370663/NOTICE.txt +0 -25
  462. braindecode-1.8.0.dev183370663/braindecode/version.py +0 -1
  463. braindecode-1.8.0.dev183370663/braindecode.egg-info/SOURCES.txt +0 -177
  464. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/LICENSE.txt +0 -0
  465. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/MANIFEST.in +0 -0
  466. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/__init__.py +0 -0
  467. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/augmentation/__init__.py +0 -0
  468. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/augmentation/base.py +0 -0
  469. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/augmentation/functional.py +0 -0
  470. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/augmentation/transforms.py +0 -0
  471. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/classifier.py +0 -0
  472. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/__init__.py +0 -0
  473. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bbci.py +0 -0
  474. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bcicomp.py +0 -0
  475. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/__init__.py +0 -0
  476. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/datasets.py +0 -0
  477. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/format.py +0 -0
  478. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/hub.py +0 -0
  479. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/hub_format.py +0 -0
  480. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/hub_io.py +0 -0
  481. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/hub_validation.py +0 -0
  482. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/bids/iterable.py +0 -0
  483. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/chb_mit.py +0 -0
  484. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/collate.py +0 -0
  485. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/mne.py +0 -0
  486. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/moabb.py +0 -0
  487. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/nmt.py +0 -0
  488. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/registry.py +0 -0
  489. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/siena.py +0 -0
  490. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  491. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/sleep_physionet.py +0 -0
  492. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/tuh.py +0 -0
  493. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/utils.py +0 -0
  494. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datasets/xy.py +0 -0
  495. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datautil/__init__.py +0 -0
  496. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datautil/channel_utils.py +0 -0
  497. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datautil/hub_formats.py +0 -0
  498. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datautil/serialization.py +0 -0
  499. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/datautil/util.py +0 -0
  500. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/eegneuralnet.py +0 -0
  501. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/functional/__init__.py +0 -0
  502. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/functional/initialization.py +0 -0
  503. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/attentionbasenet.py +0 -0
  504. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/bendr.py +0 -0
  505. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/biot.py +0 -0
  506. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/cbramod.py +0 -0
  507. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/codebrain.py +0 -0
  508. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/config.py +0 -0
  509. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/contrawr.py +0 -0
  510. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/deep4.py +0 -0
  511. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/deepsleepnet.py +0 -0
  512. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/dgcnn.py +0 -0
  513. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegdino.py +0 -0
  514. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eeginception_erp.py +0 -0
  515. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eeginception_mi.py +0 -0
  516. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegitnet.py +0 -0
  517. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegnet.py +0 -0
  518. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegnex.py +0 -0
  519. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegpt.py +0 -0
  520. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegsym.py +0 -0
  521. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/eegtcnet.py +0 -0
  522. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/fbcnet.py +0 -0
  523. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/fblightconvnet.py +0 -0
  524. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/fbmsnet.py +0 -0
  525. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/hybrid.py +0 -0
  526. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/interpolated.py +0 -0
  527. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/labram.py +0 -0
  528. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/msvtnet.py +0 -0
  529. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/patchedtransformer.py +0 -0
  530. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/reve.py +0 -0
  531. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sccnet.py +0 -0
  532. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/shallow_fbcsp.py +0 -0
  533. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/signal_jepa.py +0 -0
  534. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/sinc_shallow.py +0 -0
  535. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/steegformer.py +0 -0
  536. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/syncnet.py +0 -0
  537. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/tcn.py +0 -0
  538. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/models/tsinception.py +0 -0
  539. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/attention.py +0 -0
  540. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/convolution.py +0 -0
  541. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/dance_modules.py +0 -0
  542. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/filter.py +0 -0
  543. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/interpolation.py +0 -0
  544. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/layers.py +0 -0
  545. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/linear.py +0 -0
  546. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/parametrization.py +0 -0
  547. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/stats.py +0 -0
  548. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/util.py +0 -0
  549. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/modules/wrapper.py +0 -0
  550. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/__init__.py +0 -0
  551. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  552. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/mne_preprocess.py +0 -0
  553. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/preprocess.py +0 -0
  554. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/util.py +0 -0
  555. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/preprocessing/windowers.py +0 -0
  556. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/regressor.py +0 -0
  557. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/samplers/__init__.py +0 -0
  558. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/samplers/base.py +0 -0
  559. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/samplers/ssl.py +0 -0
  560. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/training/__init__.py +0 -0
  561. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/training/callbacks.py +0 -0
  562. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/training/losses.py +0 -0
  563. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/training/scoring.py +0 -0
  564. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/util.py +0 -0
  565. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/attribution.py +0 -0
  566. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/confusion_matrices.py +0 -0
  567. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/frequency.py +0 -0
  568. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/metrics.py +0 -0
  569. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/sanity.py +0 -0
  570. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode/visualization/topology.py +0 -0
  571. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode.egg-info/dependency_links.txt +0 -0
  572. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/braindecode.egg-info/top_level.txt +0 -0
  573. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/Makefile +0 -0
  574. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/_templates/autosummary/class.rst +0 -0
  575. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
  576. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/_templates/autosummary/function.rst +0 -0
  577. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
  578. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/cite.rst +0 -0
  579. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/conf.py +0 -0
  580. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/help.rst +0 -0
  581. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/index.rst +0 -0
  582. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/install/install.rst +0 -0
  583. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/install/install_pip.rst +0 -0
  584. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/install/install_source.rst +0 -0
  585. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/attention.rst +0 -0
  586. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/channel.rst +0 -0
  587. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/convolution.rst +0 -0
  588. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/filterbank.rst +0 -0
  589. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/gnn.rst +0 -0
  590. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/interpretable.rst +0 -0
  591. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/lbm.rst +0 -0
  592. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/recurrent.rst +0 -0
  593. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/categorization/spd.rst +0 -0
  594. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/models.rst +0 -0
  595. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/models_categorization.rst +0 -0
  596. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/models_table.rst +0 -0
  597. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/models/models_visualization.rst +0 -0
  598. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/docs/sg_execution_times.rst +0 -0
  599. {braindecode-1.8.0.dev183370663 → braindecode-1.8.1}/setup.cfg +0 -0
@@ -0,0 +1,66 @@
1
+ # BRAINDECODE Notice
2
+
3
+ ## Licensed Components
4
+
5
+ ### BSD-3-Clause Licensed Files
6
+
7
+ All files within the `braindecode/` package are licensed under the BSD-3-Clause
8
+ License, except for those listed in the sections below.
9
+
10
+ ### CC BY-NC 4.0 Licensed Files
11
+
12
+ The following components are licensed under the Creative Commons Attribution-NonCommercial 4.0 International License:
13
+
14
+ - `braindecode/models/eegminer.py`
15
+ - `braindecode/models/meta_neuromotor.py`
16
+ - `braindecode/models/brainmodule.py`
17
+
18
+ As well as class later imported into the `braindecode.models.module` named as GeneralizedGaussianFilter.
19
+
20
+ The `meta_neuromotor.py` file is a derivative of
21
+ `facebookresearch/generic-neuromotor-interface`, released by Meta Platforms,
22
+ Inc. under CC BY-NC 4.0, and inherits the same noncommercial terms.
23
+
24
+ ### CC BY-NC-SA 4.0 Licensed Files
25
+
26
+ The following components are licensed under the Creative Commons
27
+ Attribution-NonCommercial-ShareAlike 4.0 International License:
28
+
29
+ - `braindecode/models/emg2qwerty.py`
30
+ - `braindecode/models/vemg2pose.py`
31
+
32
+ The `emg2qwerty.py` file is a derivative of `facebookresearch/emg2qwerty`,
33
+ released by Meta Platforms, Inc. under CC BY-NC-SA 4.0, and inherits the
34
+ same noncommercial ShareAlike terms.
35
+
36
+ ### MIT Licensed Files
37
+
38
+ The following components are licensed under the MIT License:
39
+
40
+ - `braindecode/models/ctnet.py`
41
+ - `braindecode/models/dance.py`
42
+ - `braindecode/models/medformer.py`
43
+ - `braindecode/models/tcformer.py`
44
+ - `braindecode/models/ifnet.py`
45
+
46
+ ### Apache-2.0 Licensed Files
47
+
48
+ The following components are licensed under the Apache License 2.0:
49
+
50
+ - `braindecode/models/mvpformer.py`
51
+ - `braindecode/models/zuna.py`
52
+ - `braindecode/models/luna.py`
53
+
54
+ ## License Links
55
+
56
+ - [BSD-3-Clause License](https://opensource.org/licenses/BSD-3-Clause)
57
+ - [CC BY-NC 4.0 License](https://creativecommons.org/licenses/by-nc/4.0/)
58
+ - [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/)
59
+ - [MIT License](https://opensource.org/licenses/MIT)
60
+ - [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0)
61
+
62
+ ## Note
63
+
64
+ This list covers files whose own headers declare a license other than
65
+ BSD-3-Clause. Per-file provenance review of the remaining models is
66
+ tracked separately.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.0.dev183370663
3
+ Version: 1.8.1
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>
@@ -34,7 +34,6 @@ Requires-Dist: pandas
34
34
  Requires-Dist: wfdb>=4.3.1
35
35
  Requires-Dist: linear_attention_transformer
36
36
  Requires-Dist: docstring_inheritance
37
- Requires-Dist: rotary_embedding_torch
38
37
  Requires-Dist: pydantic>=2.0
39
38
  Provides-Extra: moabb
40
39
  Requires-Dist: moabb>=1.4.3; extra == "moabb"
@@ -51,6 +50,7 @@ Requires-Dist: pytest-cov; extra == "tests"
51
50
  Requires-Dist: codecov; extra == "tests"
52
51
  Requires-Dist: pytest_cases; extra == "tests"
53
52
  Requires-Dist: mypy; extra == "tests"
53
+ Requires-Dist: ipython; extra == "tests"
54
54
  Requires-Dist: transformers>=4.57.0; extra == "tests"
55
55
  Requires-Dist: bids_validator; extra == "tests"
56
56
  Provides-Extra: typing
@@ -260,7 +260,10 @@ This project is primarily licensed under the BSD-3-Clause License.
260
260
  Additional Components
261
261
  =====================
262
262
 
263
- Some components within this repository are licensed under the Creative Commons
264
- Attribution-NonCommercial 4.0 International License.
263
+ Some components within this repository are licensed under other licenses, including
264
+ Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0), Creative
265
+ Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0), MIT
266
+ and Apache-2.0.
265
267
 
266
- Please refer to the ``LICENSE`` and ``NOTICE`` files for more detailed information.
268
+ Please refer to the ``LICENSE`` and ``NOTICE`` files for the per-file list and more
269
+ detailed information.
@@ -170,7 +170,10 @@ This project is primarily licensed under the BSD-3-Clause License.
170
170
  Additional Components
171
171
  =====================
172
172
 
173
- Some components within this repository are licensed under the Creative Commons
174
- Attribution-NonCommercial 4.0 International License.
173
+ Some components within this repository are licensed under other licenses, including
174
+ Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0), Creative
175
+ Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0), MIT
176
+ and Apache-2.0.
175
177
 
176
- Please refer to the ``LICENSE`` and ``NOTICE`` files for more detailed information.
178
+ Please refer to the ``LICENSE`` and ``NOTICE`` files for the per-file list and more
179
+ detailed information.
@@ -0,0 +1,255 @@
1
+ # Authors: Bruno Aristimunha <b.aristimunha@gmail.com>
2
+ #
3
+ # License: BSD (3-clause)
4
+ """Serverless in-notebook viewer for file-backed recordings.
5
+
6
+ The bytes on disk behind a dataset element are inlined in the cell output
7
+ as base64 and handed to the deployed eegdash-viewer over its ``postMessage``
8
+ bridge (``docs/embedding.md`` in https://github.com/eegdash/eegdash-viewer):
9
+ no server, no CORS. The output is an iframe plus an inline script, so it
10
+ renders when the cell ran in your session or the saved notebook is trusted
11
+ (``jupyter trust``).
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import base64
17
+ import json
18
+ import os
19
+ import uuid
20
+ from pathlib import Path
21
+ from urllib.parse import urlsplit
22
+
23
+ import mne_bids
24
+ from mne.utils import _soft_import
25
+
26
+ CDN = "https://eegdash.github.io/eegdash-viewer"
27
+ MAX_BYTES = 64 * 2**20 # base64 output per call; it is saved with the notebook
28
+ EXTENSIONS = {
29
+ ".set",
30
+ ".edf",
31
+ ".bdf",
32
+ ".vhdr",
33
+ ".fif",
34
+ ".snirf",
35
+ ".nwb",
36
+ } # viewer readers
37
+ _BIDS = {"eeg", "ieeg", "emg", "meg", "nirs"}
38
+ _SIBLINGS = {".vhdr": (".eeg", ".vmrk"), ".set": (".fdt",)} # travel with the header
39
+ _HEADER = {s: h for h, ss in _SIBLINGS.items() for s in ss} # data file -> header
40
+
41
+ _SCRIPT = """<iframe id=%(id)s title="eegdash trace viewer" style="width:100%%;height:%(height)spx;
42
+ border:1px solid var(--jp-border-color1,#d9dce1);border-radius:6px;background:transparent"></iframe>
43
+ <script>
44
+ (function () {
45
+ var self = document.currentScript, id = %(id)s; // Lab re-runs scripts in place; VS Code/nbclassic elsewhere
46
+ var frame = (self && self.previousElementSibling && self.previousElementSibling.tagName === "IFRAME")
47
+ ? self.previousElementSibling : document.getElementById(id);
48
+ if (!frame) { console.error("eegdash viewer: output iframe " + id + " not found"); return; }
49
+ var payload = %(payload)s, origin = %(origin)s, files = null, pose = null;
50
+ function decode(b64) {
51
+ if (Uint8Array.fromBase64) return Uint8Array.fromBase64(b64);
52
+ var bin = atob(b64), out = new Uint8Array(bin.length);
53
+ for (var i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
54
+ return out;
55
+ }
56
+ function send(target) {
57
+ try {
58
+ if (!files) {
59
+ files = payload.files.map(function (f) { return new File([decode(f.b64)], f.name); });
60
+ pose = payload.pose ? "data:application/json;base64," + payload.pose : null;
61
+ payload = null;
62
+ }
63
+ frame.contentWindow.postMessage({ type: "eegdash-viewer:open", files: files, pose: pose }, target || origin);
64
+ } catch (err) {
65
+ frame.insertAdjacentHTML("afterend", '<div style="font:12px system-ui;color:#b3261e">eegdash viewer: '
66
+ + String(err.message).replace(/</g, "&lt;") + "</div>");
67
+ }
68
+ }
69
+ window.addEventListener("message", function onMessage(e) {
70
+ if (e.source === frame.contentWindow && e.data && e.data.type === "eegdash-viewer:ready") send(e.origin);
71
+ else if (!frame.isConnected) window.removeEventListener("message", onMessage);
72
+ });
73
+ frame.src = %(src)s; // after the listener, so "ready" can never precede it
74
+ })();
75
+ </script>"""
76
+
77
+
78
+ def recording_files(recording: Path) -> tuple[list[Path], Path | None]:
79
+ """``(files, pose)`` to inline for a recording: the header first, then the
80
+ split-format siblings, the BIDS-inherited ``_channels.tsv``/``_events.tsv``
81
+ (``mne_bids`` parses the name; plain names get none) and, separately, the
82
+ ``<prefix>_desc-pose.json`` hand-pose sidecar next to it. Symlinks keep
83
+ their name (git-annex/datalad)."""
84
+ rec = Path(recording)
85
+ if not rec.exists():
86
+ raise ValueError(
87
+ f"{rec.name}: file not found (a datalad symlink may need `datalad get`)"
88
+ )
89
+ if (
90
+ rec.is_dir()
91
+ or rec.suffix.lower() not in EXTENSIONS
92
+ or rec.stem.endswith("_epo")
93
+ ):
94
+ raise ValueError(
95
+ f"{rec.name}: the viewer opens raw recordings in {' '.join(sorted(EXTENSIONS))}"
96
+ )
97
+ sidecars: list[Path | None] = []
98
+ try:
99
+ bids = mne_bids.get_bids_path_from_fname(rec, check=False)
100
+ if bids.subject is not None: # hyphen-free names parse, but are not BIDS
101
+ sidecars = [
102
+ bids.find_matching_sidecar(
103
+ suffix=s, extension=".tsv", on_error="ignore"
104
+ )
105
+ for s in ("channels", "events")
106
+ ]
107
+ except (
108
+ KeyError,
109
+ ValueError,
110
+ ): # not a BIDS name / unknown entity somewhere in the tree
111
+ pass
112
+ files = [rec]
113
+ for p in [
114
+ rec.with_suffix(e) for e in _SIBLINGS.get(rec.suffix.lower(), ())
115
+ ] + sidecars:
116
+ if p and p.is_file():
117
+ if p not in files:
118
+ files.append(p)
119
+ elif p and p.is_symlink(): # dangling: git-annex/datalad content not fetched
120
+ raise ValueError(f"{p.name}: dangling symlink (try `datalad get`)")
121
+ stem, _, token = rec.stem.rpartition("_")
122
+ pose = rec.with_name((stem if token in _BIDS else rec.stem) + "_desc-pose.json")
123
+ return files, pose if pose.is_file() else None
124
+
125
+
126
+ def build_viewer_html(
127
+ recording: Path,
128
+ *,
129
+ height: int = 520,
130
+ cdn_url: str = CDN,
131
+ max_bytes: int = MAX_BYTES,
132
+ ) -> str:
133
+ """Viewer iframe + inlined bytes + bridge script for one recording."""
134
+ url = urlsplit(cdn_url)
135
+ if (
136
+ url.scheme not in ("http", "https")
137
+ or not url.netloc
138
+ or url.username
139
+ or url.query
140
+ or url.fragment
141
+ or url.path.endswith(("index.html", "index.htm"))
142
+ ):
143
+ raise ValueError(
144
+ f"cdn_url must be the viewer's base http(s) URL, got {cdn_url!r}"
145
+ )
146
+ files, pose = recording_files(recording)
147
+ encoded = sum(
148
+ 4 * -(-p.stat().st_size // 3) for p in files + ([pose] if pose else [])
149
+ )
150
+ if encoded > max_bytes:
151
+ raise ValueError(
152
+ f"{files[0].name}: {encoded / 2**20:.1f} MiB of base64 would be inlined into the "
153
+ f"notebook output (max_bytes={max_bytes / 2**20:.1f} MiB); crop/downsample or raise it"
154
+ )
155
+ rec = files[0]
156
+ # The viewer picks the recording by its *_<datatype>.<ext> name: plain names
157
+ # are posted as <stem>_eeg<ext>, an EEGLAB .fdt next to the posted .set name.
158
+ head = (
159
+ rec.name
160
+ if rec.stem.rpartition("_")[2] in _BIDS
161
+ else f"{rec.stem}_eeg{rec.suffix.lower()}"
162
+ )
163
+ names = [head] + [
164
+ head.rsplit("_", 1)[0] + "_eeg.fdt" if p.suffix.lower() == ".fdt" else p.name
165
+ for p in files[1:]
166
+ ]
167
+ b64 = [base64.b64encode(p.read_bytes()).decode() for p in files]
168
+ literals = {
169
+ "id": f"eegdash-viewer-{uuid.uuid4().hex[:8]}",
170
+ "height": int(height),
171
+ "payload": {
172
+ "files": [{"name": n, "b64": b} for n, b in zip(names, b64)],
173
+ "pose": base64.b64encode(pose.read_bytes()).decode() if pose else None,
174
+ },
175
+ "origin": f"{url.scheme}://{url.netloc}",
176
+ "src": f"{url.geturl().rstrip('/')}/index.html?embed=1",
177
+ }
178
+ return _SCRIPT % {
179
+ k: json.dumps(v).replace("<", "\\u003c") for k, v in literals.items()
180
+ }
181
+
182
+
183
+ def _recording(dataset, index: int) -> Path:
184
+ """File behind ``dataset.datasets[index]``: the one its mne ``raw`` reads (a
185
+ data file maps back to its header; lazily downloading datasets fetch it when
186
+ ``raw`` is accessed) or the recorded ``description["path"]``."""
187
+ ds = dataset.datasets[index]
188
+ names = [
189
+ Path(f)
190
+ for f in getattr(getattr(ds, "raw", None), "filenames", None) or ()
191
+ if isinstance(f, (str, os.PathLike))
192
+ ]
193
+ if len(names) > 1:
194
+ raise ValueError(
195
+ f"{type(dataset).__name__}[{index}]: split recordings are not supported"
196
+ )
197
+ desc = getattr(ds, "description", None) # dict or pandas Series
198
+ recorded = desc.get("path") if desc is not None else None
199
+ path = (
200
+ names[0]
201
+ if names
202
+ else Path(recorded)
203
+ if isinstance(recorded, (str, os.PathLike))
204
+ else None
205
+ )
206
+ if path is None:
207
+ raise ValueError(
208
+ f"{type(dataset).__name__}[{index}] is not backed by a recording file"
209
+ )
210
+ header = path.with_suffix(_HEADER.get(path.suffix.lower(), path.suffix))
211
+ return header if header.is_file() else path
212
+
213
+
214
+ def plot(
215
+ dataset,
216
+ index: int = 0,
217
+ *,
218
+ height: int = 520,
219
+ cdn_url: str = CDN,
220
+ max_bytes: int = MAX_BYTES,
221
+ ):
222
+ """Show one recording in the eegdash-viewer inside a Jupyter cell.
223
+
224
+ Serverless: the recording bytes (as on disk) are inlined in the output and
225
+ pushed to the viewer at ``cdn_url`` over ``postMessage``; the output renders
226
+ when the cell ran in your session or the notebook is trusted. A
227
+ ``*_desc-pose.json`` sidecar next to the recording adds the synchronized
228
+ hand-pose panel. Needs IPython (soft dependency).
229
+
230
+ Parameters
231
+ ----------
232
+ index : int
233
+ Recording to display.
234
+ height : int
235
+ Viewer height in pixels.
236
+ cdn_url : str
237
+ Base URL of a deployed eegdash-viewer.
238
+ max_bytes : int
239
+ Refuse to inline more than this much base64 (default 64 MiB); the
240
+ payload is saved with the notebook and, like any cell output, stays
241
+ referenced by IPython's ``Out`` history for the session.
242
+
243
+ Returns
244
+ -------
245
+ IPython.display.HTML
246
+ """
247
+ ipython = _soft_import("IPython", purpose=f"{type(dataset).__name__}.plot()")
248
+ return ipython.display.HTML(
249
+ build_viewer_html(
250
+ _recording(dataset, index),
251
+ height=height,
252
+ cdn_url=cdn_url,
253
+ max_bytes=max_bytes,
254
+ )
255
+ )
@@ -32,6 +32,7 @@ from mne.utils.docs import deprecated
32
32
  from torch.utils.data import ConcatDataset, Dataset, IterableDataset
33
33
  from typing_extensions import TypeVar
34
34
 
35
+ from ._notebook_viewer import plot as _viewer_plot
35
36
  from .bids.hub import HubDatasetMixin
36
37
  from .bids.hub_io import _restore_nan_from_json
37
38
  from .registry import register_dataset
@@ -1174,6 +1175,8 @@ class BaseConcatDataset(ConcatDataset, HubDatasetMixin, Generic[T]):
1174
1175
  If True, defer computing cumulative sizes until length or item access.
1175
1176
  """
1176
1177
 
1178
+ plot = _viewer_plot # eegdash-viewer embed; a direct member so the API docs list it
1179
+
1177
1180
  datasets: list[T]
1178
1181
 
1179
1182
  def __init__(
@@ -40,7 +40,7 @@ def drop_path(
40
40
  x : torch.Tensor
41
41
  input tensor
42
42
  drop_prob : float, optional
43
- survival rate (i.e. probability of being kept), by default 0.0
43
+ probability of dropping a path, by default 0.0
44
44
  training : bool, optional
45
45
  whether the model is in training mode, by default False
46
46
  scale_by_keep : bool, optional
@@ -68,9 +68,10 @@ def drop_path(
68
68
  shape = (x.shape[0],) + (1,) * (
69
69
  x.ndim - 1
70
70
  ) # work with diff dim tensors, not just 2D ConvNets
71
- random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
71
+ probabilities = torch.full(shape, keep_prob, dtype=torch.float32, device=x.device)
72
+ random_tensor = torch.bernoulli(probabilities).to(dtype=x.dtype)
72
73
  if keep_prob > 0.0 and scale_by_keep:
73
- random_tensor.div_(keep_prob)
74
+ random_tensor = random_tensor / keep_prob
74
75
  return x * random_tensor
75
76
 
76
77
 
@@ -40,9 +40,11 @@ from .medformer import MEDFormer
40
40
  from .meta_neuromotor import MetaNeuromotorHand
41
41
  from .msvtnet import MSVTNet
42
42
  from .mvpformer import MVPFormer
43
+ from .neuropose import NeuroPose
43
44
  from .patchedtransformer import PBT
44
45
  from .reve import REVE
45
46
  from .sccnet import SCCNet
47
+ from .sensingdynamics import SensingDynamics
46
48
  from .shallow_fbcsp import ShallowFBCSPNet
47
49
  from .signal_jepa import (
48
50
  InterpolatedSignalJEPA,
@@ -71,6 +73,7 @@ from .util import (
71
73
  models_mandatory_parameters,
72
74
  positions_from_chs_info,
73
75
  )
76
+ from .vemg2pose import VEMG2Pose
74
77
  from .zuna import ZUNA
75
78
 
76
79
  # Call this last in order to make sure the dataset list is populated with
@@ -107,6 +110,9 @@ __all__ = [
107
110
  "EEGTCNet",
108
111
  "DGCNN",
109
112
  "EMG2QwertyNet",
113
+ "NeuroPose",
114
+ "SensingDynamics",
115
+ "VEMG2Pose",
110
116
  "FBCNet",
111
117
  "FBLightConvNet",
112
118
  "FBMSNet",
@@ -196,7 +196,7 @@ class ATCNet(EEGModuleMixin, nn.Module):
196
196
  num_heads : int
197
197
  Number of attention heads, denoted H in table 1 of the paper [1]_.
198
198
  Defaults to 2 as in [1]_.
199
- att_dropout : float
199
+ att_drop_prob : float
200
200
  Dropout probability used in the attention block, denoted pa in table 1
201
201
  of the paper [1]_. Defaults to 0.5 as in [1]_.
202
202
  tcn_depth : int
@@ -206,7 +206,7 @@ class ATCNet(EEGModuleMixin, nn.Module):
206
206
  tcn_kernel_size : int
207
207
  Temporal kernel size used in TCN block, denoted Kt in table 1 of the
208
208
  paper [1]_. Defaults to 4 as in [1]_.
209
- tcn_dropout : float
209
+ tcn_drop_prob : float
210
210
  Dropout probability used in the TCN block, denoted pt in table 1
211
211
  of the paper [1]_. Defaults to 0.3 as in [1]_.
212
212
  tcn_activation : torch.nn.Module
@@ -88,10 +88,6 @@ class AttnSleep(EEGModuleMixin, nn.Module):
88
88
  If True, return the features, i.e. the output of the feature extractor
89
89
  (before the final linear layer). If False, pass the features through
90
90
  the final linear layer.
91
- n_classes : int
92
- Alias for `n_outputs`.
93
- input_size_s : float
94
- Alias for `input_window_seconds`.
95
91
  activation : nn.Module, default=nn.ReLU
96
92
  Activation function class to apply in the AFR block and the TCE
97
93
  feed-forward block. Should be a PyTorch activation
@@ -80,7 +80,7 @@ class _BraindecodeDocstringMeta(NumpyDocstringInheritanceInitMeta):
80
80
  unwrapped function and correctly inherits ``cls.__doc__``.
81
81
  """
82
82
 
83
- def __init__(cls, class_name, class_bases, class_dict):
83
+ def __init__(cls, class_name, class_bases, class_dict, **kwargs):
84
84
  super().__init__(class_name, class_bases, class_dict)
85
85
  # Only wrap subclass __init__s, not EEGModuleMixin itself.
86
86
  # Wrapping the mixin would cause super().__init__() calls to
@@ -214,6 +214,8 @@ class EEGModuleMixin(_BaseHubMixin, metaclass=_BraindecodeDocstringMeta):
214
214
  __jit_unused_properties__ = ["chs_info"]
215
215
 
216
216
  def __init_subclass__(cls, **kwargs):
217
+ license = kwargs.pop("license", "bsd-3-clause")
218
+
217
219
  # TorchScript only honours ``__jit_ignored_attributes__`` for
218
220
  # properties defined directly on the concrete class: it collects them
219
221
  # with ``vars(type(module))``, which skips inherited ones. Rebinding
@@ -253,8 +255,6 @@ class EEGModuleMixin(_BaseHubMixin, metaclass=_BraindecodeDocstringMeta):
253
255
  )
254
256
  repo_url = kwargs.pop("repo_url", "https://braindecode.org")
255
257
  library_name = kwargs.pop("library_name", "braindecode")
256
- license = kwargs.pop("license", "bsd-3-clause")
257
-
258
258
  # Register a coder so that type[nn.Module] parameters
259
259
  # (e.g. activation=nn.ELU) are serialized as importable
260
260
  # strings in config.json and decoded back on load.
@@ -519,6 +519,31 @@ class EEGModuleMixin(_BaseHubMixin, metaclass=_BraindecodeDocstringMeta):
519
519
  resolve_type_kwargs(cls, config)
520
520
  return cls(**config)
521
521
 
522
+ def _set_n_outputs(self, n_outputs: int) -> None:
523
+ """Record a new ``n_outputs`` on the model and its saved configs.
524
+
525
+ Helper for :meth:`reset_head` implementations: validates the value,
526
+ then keeps the ``n_outputs`` property, the braindecode init kwargs
527
+ and the Hugging Face hub config in sync, so a re-serialized model
528
+ reports the head it actually has.
529
+
530
+ Parameters
531
+ ----------
532
+ n_outputs : int
533
+ New number of outputs. Must be positive.
534
+
535
+ .. versionadded:: 1.8
536
+ """
537
+ if n_outputs <= 0:
538
+ raise ValueError(f"n_outputs must be positive; got {n_outputs}.")
539
+ self._n_outputs = n_outputs
540
+ for config in (
541
+ getattr(self, "_braindecode_init_kwargs", None),
542
+ getattr(self, "_hub_mixin_config", None),
543
+ ):
544
+ if config is not None and "n_outputs" in config:
545
+ config["n_outputs"] = n_outputs
546
+
522
547
  def reset_head(self, n_outputs):
523
548
  """Replace the classification head for a new number of outputs.
524
549
 
@@ -25,7 +25,7 @@ from braindecode.modules.layers import SubjectLayers
25
25
  __all__ = ["BrainModule"]
26
26
 
27
27
 
28
- class BrainModule(EEGModuleMixin, nn.Module):
28
+ class BrainModule(EEGModuleMixin, nn.Module, license="cc-by-nc-4.0"):
29
29
  r"""BrainModule from [brainmagick]_, also known as SimpleConv.
30
30
 
31
31
  A dilated convolutional encoder for EEG decoding, using residual
@@ -24,7 +24,7 @@ from braindecode.modules import (
24
24
  )
25
25
 
26
26
 
27
- class CTNet(EEGModuleMixin, nn.Module):
27
+ class CTNet(EEGModuleMixin, nn.Module, license="mit"):
28
28
  r"""CTNet from Zhao, W et al (2024) [ctnet]_.
29
29
 
30
30
  :bdg-success:`Convolution` :bdg-info:`Attention/Transformer`
@@ -59,16 +59,19 @@ class CTNet(EEGModuleMixin, nn.Module):
59
59
 
60
60
  Parameters
61
61
  ----------
62
- activation : nn.Module, default=nn.GELU
63
- Activation function to use in the network.
62
+ activation_patch : nn.Module, default=nn.ELU
63
+ Activation function to use in the convolutional patch embedding.
64
+ activation_transformer : nn.Module, default=nn.GELU
65
+ Activation function to use in the Transformer encoder.
64
66
  num_heads : int, default=4
65
67
  Number of attention heads in the Transformer encoder.
66
- embed_dim : int or None, default=None
68
+ embed_dim : int or None, default=40
67
69
  Embedding size (dimensionality) for the Transformer encoder.
68
70
  num_layers : int, default=6
69
71
  Number of encoder layers in the Transformer.
70
- n_filters_time : int, default=20
71
- Number of temporal filters in the first convolutional layer.
72
+ n_filters_time : int or None, default=None
73
+ Number of temporal filters in the first convolutional layer. Inferred
74
+ from ``embed_dim`` and ``depth_multiplier`` when left at ``None``.
72
75
  kernel_size : int, default=64
73
76
  Kernel size for the temporal convolutional layer.
74
77
  depth_multiplier : int, default=2
@@ -77,7 +80,7 @@ class CTNet(EEGModuleMixin, nn.Module):
77
80
  Pooling size for the first average pooling layer.
78
81
  pool_size_2 : int, default=8
79
82
  Pooling size for the second average pooling layer.
80
- cnn_drop_prob: float, default=0.3
83
+ cnn_drop_prob : float, default=0.3
81
84
  Dropout probability after convolutional layers.
82
85
  att_positional_drop_prob : float, default=0.1
83
86
  Dropout probability for the positional encoding in the Transformer.
@@ -22,7 +22,7 @@ from braindecode.modules import ChannelMerger, Perceiver, SimpleConv
22
22
  from braindecode.modules.dance_modules import DanceDetrDecoder
23
23
 
24
24
 
25
- class DANCE(EEGModuleMixin, nn.Module):
25
+ class DANCE(EEGModuleMixin, nn.Module, license="mit"):
26
26
  r"""DANCE from Lévy et al (2026) [dance]_.
27
27
 
28
28
  :bdg-success:`Convolution` :bdg-info:`Attention/Transformer` :bdg-dark-line:`Channel`
@@ -349,8 +349,7 @@ class DANCE(EEGModuleMixin, nn.Module):
349
349
 
350
350
  def reset_head(self, n_outputs: int) -> None:
351
351
  """Replace the dense head and the DETR class head for a new ``n_outputs``."""
352
- if n_outputs <= 0:
353
- raise ValueError(f"n_outputs must be positive; got {n_outputs}.")
352
+ self._set_n_outputs(n_outputs)
354
353
  old = self.final_layer
355
354
  self.final_layer = nn.Linear(old.in_features, n_outputs).to(
356
355
  device=old.weight.device, dtype=old.weight.dtype
@@ -359,10 +358,3 @@ class DANCE(EEGModuleMixin, nn.Module):
359
358
  self.decoder.class_head = nn.Linear(ch.in_features, n_outputs).to(
360
359
  device=ch.weight.device, dtype=ch.weight.dtype
361
360
  )
362
- self._n_outputs = n_outputs
363
- init_kwargs = getattr(self, "_braindecode_init_kwargs", None)
364
- if init_kwargs is not None and "n_outputs" in init_kwargs:
365
- init_kwargs["n_outputs"] = n_outputs
366
- hub_config = getattr(self, "_hub_mixin_config", None)
367
- if hub_config is not None and "n_outputs" in hub_config:
368
- hub_config["n_outputs"] = n_outputs
@@ -185,7 +185,7 @@ class EEGConformer(EEGModuleMixin, nn.Module):
185
185
  31, pp.710-719. https://ieeexplore.ieee.org/document/9991178
186
186
  .. [ConformerCode] Song, Y., Zheng, Q., Liu, B. and Gao, X., 2022. EEG
187
187
  conformer: Convolutional transformer for EEG decoding and visualization.
188
- https://github.com/eeyhsong/EEG-Conformer.
188
+ https://github.com/eeyhsong/EEG-Conformer
189
189
  """
190
190
 
191
191
  def __init__(
@@ -6,6 +6,7 @@
6
6
  """
7
7
 
8
8
  # Authors: Sarthak Tayal <sarthaktayal2@gmail.com>
9
+ # License: Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
9
10
 
10
11
  import torch
11
12
  from torch import nn
@@ -48,7 +49,7 @@ class _EEGMinerFeatures(nn.Module):
48
49
  return x[:, self.triu_row, self.triu_col, :]
49
50
 
50
51
 
51
- class EEGMiner(EEGModuleMixin, nn.Module):
52
+ class EEGMiner(EEGModuleMixin, nn.Module, license="cc-by-nc-4.0"):
52
53
  r"""EEGMiner from Ludwig et al (2024) [eegminer]_.
53
54
 
54
55
  :bdg-success:`Convolution` :bdg-warning:`Interpretability`