braindecode 1.8.1.dev172484635__tar.gz → 1.8.1.dev172588044__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 (194) hide show
  1. {braindecode-1.8.1.dev172484635/braindecode.egg-info → braindecode-1.8.1.dev172588044}/PKG-INFO +1 -1
  2. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/deep4.py +15 -8
  3. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegpt.py +14 -2
  4. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/shallow_fbcsp.py +15 -8
  5. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/layers.py +4 -2
  6. braindecode-1.8.1.dev172588044/braindecode/version.py +1 -0
  7. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044/braindecode.egg-info}/PKG-INFO +1 -1
  8. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/whats_new.rst +21 -0
  9. braindecode-1.8.1.dev172484635/braindecode/version.py +0 -1
  10. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/LICENSE.txt +0 -0
  11. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/MANIFEST.in +0 -0
  12. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/NOTICE.txt +0 -0
  13. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/README.rst +0 -0
  14. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/__init__.py +0 -0
  15. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/augmentation/__init__.py +0 -0
  16. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/augmentation/base.py +0 -0
  17. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/augmentation/functional.py +0 -0
  18. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/augmentation/transforms.py +0 -0
  19. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/classifier.py +0 -0
  20. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/__init__.py +0 -0
  21. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/_notebook_viewer.py +0 -0
  22. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/base.py +0 -0
  23. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bbci.py +0 -0
  24. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bcicomp.py +0 -0
  25. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/__init__.py +0 -0
  26. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/datasets.py +0 -0
  27. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/format.py +0 -0
  28. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/hub.py +0 -0
  29. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/hub_format.py +0 -0
  30. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/hub_io.py +0 -0
  31. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/hub_validation.py +0 -0
  32. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/bids/iterable.py +0 -0
  33. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/chb_mit.py +0 -0
  34. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/collate.py +0 -0
  35. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/mne.py +0 -0
  36. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/moabb.py +0 -0
  37. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/nmt.py +0 -0
  38. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/registry.py +0 -0
  39. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/siena.py +0 -0
  40. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/sleep_physio_challe_18.py +0 -0
  41. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/sleep_physionet.py +0 -0
  42. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/tuh.py +0 -0
  43. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/utils.py +0 -0
  44. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datasets/xy.py +0 -0
  45. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datautil/__init__.py +0 -0
  46. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datautil/channel_utils.py +0 -0
  47. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datautil/hub_formats.py +0 -0
  48. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datautil/serialization.py +0 -0
  49. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/datautil/util.py +0 -0
  50. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/eegneuralnet.py +0 -0
  51. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/functional/__init__.py +0 -0
  52. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/functional/_real_dft.py +0 -0
  53. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/functional/functions.py +0 -0
  54. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/functional/initialization.py +0 -0
  55. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/__init__.py +0 -0
  56. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/atcnet.py +0 -0
  57. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/attentionbasenet.py +0 -0
  58. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/attn_sleep.py +0 -0
  59. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/barista.py +0 -0
  60. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/base.py +0 -0
  61. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/bendr.py +0 -0
  62. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/biot.py +0 -0
  63. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/brainbert.py +0 -0
  64. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/brainmodule.py +0 -0
  65. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/brant.py +0 -0
  66. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/cbramod.py +0 -0
  67. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/codebrain.py +0 -0
  68. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/config.py +0 -0
  69. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/contrawr.py +0 -0
  70. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/ctnet.py +0 -0
  71. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/dance.py +0 -0
  72. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/deepsleepnet.py +0 -0
  73. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/dgcnn.py +0 -0
  74. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/diver1.py +0 -0
  75. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegconformer.py +0 -0
  76. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegdino.py +0 -0
  77. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eeginception_erp.py +0 -0
  78. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eeginception_mi.py +0 -0
  79. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegitnet.py +0 -0
  80. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegminer.py +0 -0
  81. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegnet.py +0 -0
  82. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegnex.py +0 -0
  83. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegsimpleconv.py +0 -0
  84. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegsym.py +0 -0
  85. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/eegtcnet.py +0 -0
  86. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/emg2qwerty.py +0 -0
  87. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/fbcnet.py +0 -0
  88. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/fblightconvnet.py +0 -0
  89. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/fbmsnet.py +0 -0
  90. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/hybrid.py +0 -0
  91. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/ifnet.py +0 -0
  92. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/interpolated.py +0 -0
  93. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/labram.py +0 -0
  94. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/luna.py +0 -0
  95. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/medformer.py +0 -0
  96. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/meta_neuromotor.py +0 -0
  97. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/mirepnet.py +0 -0
  98. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/mscformer.py +0 -0
  99. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/msvtnet.py +0 -0
  100. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/mvpformer.py +0 -0
  101. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/neuropose.py +0 -0
  102. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/patchedtransformer.py +0 -0
  103. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/popt.py +0 -0
  104. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/reve.py +0 -0
  105. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sccnet.py +0 -0
  106. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sensingdynamics.py +0 -0
  107. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/signal_jepa.py +0 -0
  108. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sinc_shallow.py +0 -0
  109. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sleep_stager_blanco_2020.py +0 -0
  110. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sleep_stager_chambon_2018.py +0 -0
  111. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sparcnet.py +0 -0
  112. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/sstdpn.py +0 -0
  113. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/steegformer.py +0 -0
  114. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/summary.csv +0 -0
  115. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/syncnet.py +0 -0
  116. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/tcformer.py +0 -0
  117. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/tcn.py +0 -0
  118. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/tidnet.py +0 -0
  119. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/tsinception.py +0 -0
  120. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/usleep.py +0 -0
  121. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/util.py +0 -0
  122. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/vemg2pose.py +0 -0
  123. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/models/zuna.py +0 -0
  124. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/__init__.py +0 -0
  125. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/activation.py +0 -0
  126. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/attention.py +0 -0
  127. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/blocks.py +0 -0
  128. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/convolution.py +0 -0
  129. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/dance_modules.py +0 -0
  130. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/filter.py +0 -0
  131. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/interpolation.py +0 -0
  132. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/linear.py +0 -0
  133. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/parametrization.py +0 -0
  134. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/popt_modules.py +0 -0
  135. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/stats.py +0 -0
  136. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/util.py +0 -0
  137. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/modules/wrapper.py +0 -0
  138. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/__init__.py +0 -0
  139. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/eegprep_preprocess.py +0 -0
  140. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/mne_preprocess.py +0 -0
  141. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/preprocess.py +0 -0
  142. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/util.py +0 -0
  143. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/preprocessing/windowers.py +0 -0
  144. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/regressor.py +0 -0
  145. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/samplers/__init__.py +0 -0
  146. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/samplers/base.py +0 -0
  147. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/samplers/ssl.py +0 -0
  148. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/training/__init__.py +0 -0
  149. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/training/callbacks.py +0 -0
  150. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/training/losses.py +0 -0
  151. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/training/scoring.py +0 -0
  152. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/util.py +0 -0
  153. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/__init__.py +0 -0
  154. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/activations.py +0 -0
  155. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/attribution.py +0 -0
  156. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/confusion_matrices.py +0 -0
  157. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/frequency.py +0 -0
  158. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/metrics.py +0 -0
  159. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/sanity.py +0 -0
  160. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode/visualization/topology.py +0 -0
  161. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode.egg-info/SOURCES.txt +0 -0
  162. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode.egg-info/dependency_links.txt +0 -0
  163. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode.egg-info/requires.txt +0 -0
  164. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/braindecode.egg-info/top_level.txt +0 -0
  165. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/Makefile +0 -0
  166. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/_templates/autosummary/class.rst +0 -0
  167. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/_templates/autosummary/class_in_subdir.rst +0 -0
  168. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/_templates/autosummary/function.rst +0 -0
  169. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/_templates/autosummary/function_in_subdir.rst +0 -0
  170. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/agent_docs.rst +0 -0
  171. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/api.rst +0 -0
  172. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/cite.rst +0 -0
  173. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/conf.py +0 -0
  174. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/help.rst +0 -0
  175. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/index.rst +0 -0
  176. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/install/install.rst +0 -0
  177. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/install/install_pip.rst +0 -0
  178. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/install/install_source.rst +0 -0
  179. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/attention.rst +0 -0
  180. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/channel.rst +0 -0
  181. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/convolution.rst +0 -0
  182. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/filterbank.rst +0 -0
  183. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/gnn.rst +0 -0
  184. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/interpretable.rst +0 -0
  185. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/lbm.rst +0 -0
  186. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/recurrent.rst +0 -0
  187. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/categorization/spd.rst +0 -0
  188. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/models.rst +0 -0
  189. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/models_categorization.rst +0 -0
  190. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/models_table.rst +0 -0
  191. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/models/models_visualization.rst +0 -0
  192. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/docs/sg_execution_times.rst +0 -0
  193. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/pyproject.toml +0 -0
  194. {braindecode-1.8.1.dev172484635 → braindecode-1.8.1.dev172588044}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.1.dev172484635
3
+ Version: 1.8.1.dev172588044
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>
@@ -186,13 +186,18 @@ class Deep4Net(EEGModuleMixin, nn.Sequential):
186
186
  # When padronize all layers,
187
187
  # add the old's parameters here
188
188
  self.mapping = {
189
- "conv_time.weight": "conv_time_spat.conv_time.weight",
190
- "conv_spat.weight": "conv_time_spat.conv_spat.weight",
191
- "conv_time.bias": "conv_time_spat.conv_time.bias",
192
- "conv_spat.bias": "conv_time_spat.conv_spat.bias",
193
189
  "conv_classifier.weight": "final_layer.conv_classifier.weight",
194
190
  "conv_classifier.bias": "final_layer.conv_classifier.bias",
195
191
  }
192
+ if self.split_first_layer:
193
+ self.mapping.update(
194
+ {
195
+ "conv_time.weight": "conv_time_spat.conv_time.weight",
196
+ "conv_spat.weight": "conv_time_spat.conv_spat.weight",
197
+ "conv_time.bias": "conv_time_spat.conv_time.bias",
198
+ "conv_spat.bias": "conv_time_spat.conv_spat.bias",
199
+ }
200
+ )
196
201
 
197
202
  if self.stride_before_pool:
198
203
  conv_stride = self.pool_time_stride
@@ -319,14 +324,16 @@ class Deep4Net(EEGModuleMixin, nn.Sequential):
319
324
 
320
325
  # Initialization, xavier is same as in our paper...
321
326
  # was default from lasagne
322
- init.xavier_uniform_(self.conv_time_spat.conv_time.weight, gain=1)
323
- # maybe no bias in case of no split layer and batch norm
324
- if self.split_first_layer or (not self.batch_norm):
325
- init.constant_(self.conv_time_spat.conv_time.bias, 0)
326
327
  if self.split_first_layer:
328
+ init.xavier_uniform_(self.conv_time_spat.conv_time.weight, gain=1)
329
+ init.constant_(self.conv_time_spat.conv_time.bias, 0)
327
330
  init.xavier_uniform_(self.conv_time_spat.conv_spat.weight, gain=1)
328
331
  if not self.batch_norm:
329
332
  init.constant_(self.conv_time_spat.conv_spat.bias, 0)
333
+ else:
334
+ init.xavier_uniform_(self.conv_time.weight, gain=1)
335
+ if not self.batch_norm:
336
+ init.constant_(self.conv_time.bias, 0)
330
337
  if self.batch_norm:
331
338
  init.constant_(self.bnorm.weight, 1)
332
339
  init.constant_(self.bnorm.bias, 0)
@@ -88,7 +88,8 @@ class EEGPT(EEGModuleMixin, nn.Module):
88
88
  - *Role.* Maps raw spatio-temporal EEG patches into a sequence of latent tokens :math:`z`.
89
89
  - `EEGPT.chans_id` **(Channel Identification)**
90
90
  - *Operations.* A buffer containing channel indices mapped from the standard channel names provided
91
- in ``chs_info`` [eegpt]_.
91
+ in ``chs_info`` [eegpt]_. It is rebuilt from the montage at construction and not stored in
92
+ checkpoints, so pretrained weights load on any montage.
92
93
  - *Role.* Provides the spatial identity for each input channel, allowing the model to look up
93
94
  the correct channel embedding vector :math:`\varsigma_i`.
94
95
  - **Local Spatio-Temporal Embedding** (Input Processing)
@@ -338,8 +339,12 @@ class EEGPT(EEGModuleMixin, nn.Module):
338
339
  else:
339
340
  self.channel_names = None # type: ignore
340
341
 
342
+ # Derived from the montage above, so it is not saved in the state dict:
343
+ # loading a checkpoint must not replace the IDs of this model's channels.
341
344
  self.register_buffer(
342
- "chans_id", self.target_encoder.prepare_chan_ids(self.channel_names)
345
+ "chans_id",
346
+ self.target_encoder.prepare_chan_ids(self.channel_names),
347
+ persistent=False,
343
348
  )
344
349
 
345
350
  self.flattened_encoder_output_dim = (
@@ -391,6 +396,13 @@ class EEGPT(EEGModuleMixin, nn.Module):
391
396
  "embed_dim": self.embed_dim,
392
397
  }
393
398
 
399
+ def _load_from_state_dict(self, state_dict, prefix, *args, **kwargs):
400
+ # Checkpoints saved before ``chans_id`` became non-persistent (including
401
+ # the released EEGPT weights) still carry it. Drop it, so the IDs keep
402
+ # matching this model's montage and a different montage can load.
403
+ state_dict.pop(prefix + "chans_id", None)
404
+ super()._load_from_state_dict(state_dict, prefix, *args, **kwargs)
405
+
394
406
  def forward(self, x, return_features=False):
395
407
  """
396
408
  Forward pass.
@@ -124,13 +124,18 @@ class ShallowFBCSPNet(EEGModuleMixin, nn.Sequential):
124
124
  self.drop_prob = drop_prob
125
125
 
126
126
  self.mapping = {
127
- "conv_time.weight": "conv_time_spat.conv_time.weight",
128
- "conv_spat.weight": "conv_time_spat.conv_spat.weight",
129
- "conv_time.bias": "conv_time_spat.conv_time.bias",
130
- "conv_spat.bias": "conv_time_spat.conv_spat.bias",
131
127
  "conv_classifier.weight": "final_layer.conv_classifier.weight",
132
128
  "conv_classifier.bias": "final_layer.conv_classifier.bias",
133
129
  }
130
+ if self.split_first_layer:
131
+ self.mapping.update(
132
+ {
133
+ "conv_time.weight": "conv_time_spat.conv_time.weight",
134
+ "conv_spat.weight": "conv_time_spat.conv_spat.weight",
135
+ "conv_time.bias": "conv_time_spat.conv_time.bias",
136
+ "conv_spat.bias": "conv_time_spat.conv_spat.bias",
137
+ }
138
+ )
134
139
 
135
140
  self.add_module("ensuredims", Ensure4d())
136
141
  pool_class = dict(max=nn.MaxPool2d, mean=nn.AvgPool2d)[self.pool_mode]
@@ -203,14 +208,16 @@ class ShallowFBCSPNet(EEGModuleMixin, nn.Sequential):
203
208
  self.add_module("final_layer", module)
204
209
 
205
210
  # Initialization, xavier is same as in paper...
206
- init.xavier_uniform_(self.conv_time_spat.conv_time.weight, gain=1)
207
- # maybe no bias in case of no split layer and batch norm
208
- if self.split_first_layer or (not self.batch_norm):
209
- init.constant_(self.conv_time_spat.conv_time.bias, 0)
210
211
  if self.split_first_layer:
212
+ init.xavier_uniform_(self.conv_time_spat.conv_time.weight, gain=1)
213
+ init.constant_(self.conv_time_spat.conv_time.bias, 0)
211
214
  init.xavier_uniform_(self.conv_time_spat.conv_spat.weight, gain=1)
212
215
  if not self.batch_norm:
213
216
  init.constant_(self.conv_time_spat.conv_spat.bias, 0)
217
+ else:
218
+ init.xavier_uniform_(self.conv_time.weight, gain=1)
219
+ if not self.batch_norm:
220
+ init.constant_(self.conv_time.bias, 0)
214
221
  if self.batch_norm:
215
222
  init.constant_(self.bnorm.weight, 1)
216
223
  init.constant_(self.bnorm.bias, 0)
@@ -62,6 +62,8 @@ class Chomp1d(nn.Module):
62
62
  return "chomp_size={}".format(self.chomp_size)
63
63
 
64
64
  def forward(self, x):
65
+ if self.chomp_size == 0:
66
+ return x.contiguous()
65
67
  return x[:, :, : -self.chomp_size].contiguous()
66
68
 
67
69
 
@@ -110,8 +112,8 @@ class TimeDistributed(nn.Module):
110
112
  Shape (batch_size, seq_len, output_size).
111
113
  """
112
114
  b, s, c, t = x.shape
113
- out = self.module(x.view(b * s, c, t))
114
- return out.view(b, s, -1)
115
+ out = self.module(x.reshape(b * s, c, t))
116
+ return out.reshape(b, s, -1)
115
117
 
116
118
 
117
119
  class DropPath(nn.Module):
@@ -0,0 +1 @@
1
+ __version__ = "1.8.1.dev172588044"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braindecode
3
- Version: 1.8.1.dev172484635
3
+ Version: 1.8.1.dev172588044
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>
@@ -130,6 +130,21 @@ Requirements
130
130
  Bug fixes
131
131
  ==========
132
132
 
133
+ - Fix :class:`braindecode.models.ShallowFBCSPNet` with
134
+ ``split_first_layer=False``, which attempted to initialize and remap
135
+ checkpoint keys through the split-only ``conv_time_spat`` module after the
136
+ CombinedConv refactor. The unsplit path now initializes and loads its direct
137
+ temporal convolution as before (:gh:`1212` by `lindicaphxag-tech`_).
138
+
139
+ - Fix :class:`braindecode.models.Deep4Net` with
140
+ ``split_first_layer=False``, which attempted to initialize and remap
141
+ checkpoint keys through the split-only ``conv_time_spat`` module after the
142
+ CombinedConv refactor. The unsplit path now initializes and loads its direct
143
+ temporal convolution as before (:gh:`1207` by `lindicaphxag-tech`_).
144
+ - Make :class:`braindecode.modules.TimeDistributed` accept non-contiguous sequence batches by reshaping rather than requiring view-compatible strides. By `lindicaphxag-tech`_.
145
+
146
+ - Make :class:`braindecode.modules.Chomp1d` preserve the input when ``chomp_size=0`` instead of returning an empty time axis. This restores :class:`braindecode.models.TCN` with ``kernel_size=1``, whose causal padding is zero. By `lindicaphxag-tech`_.
147
+
133
148
  - Preserve ``Deep4Net``'s first-block temporal stride when using the merged
134
149
  ``CombinedConv`` path with ``stride_before_pool=True``; dense-prediction
135
150
  outputs now retain the historical temporal geometry (:gh:`1205` by `lindicaphxag-tech`_).
@@ -261,6 +276,12 @@ Bug fixes
261
276
  intermediate gradients, and rows at or below ``max_norm`` are unchanged.
262
277
  Empty tensors pass through and a negative ``max_norm`` raises, as
263
278
  ``Tensor.renorm`` does (:gh:`1187` by `Bruno Aristimunha`_).
279
+ - Keep the channel IDs of :class:`braindecode.models.EEGPT` (``chans_id``) out
280
+ of the state dict. They are rebuilt from ``chs_info``, and a checkpoint that
281
+ still stores them no longer overrides them: the released weights now load on
282
+ any montage and with the default channel projection, where they failed with a
283
+ size mismatch, and a montage with the same channel count no longer silently
284
+ takes the checkpoint's IDs (:gh:`1195` by `Bruno Aristimunha`_).
264
285
 
265
286
  - Fix :class:`braindecode.models.Labram` so the released weights keep their
266
287
  pretrained time embedding at every window length: it now holds the original
@@ -1 +0,0 @@
1
- __version__ = "1.8.1.dev172484635"