Skip to content

Commit

Permalink
Log Softmax as False (#624)
Browse files Browse the repository at this point in the history
* Softmax as False

* Updating the examples

* Updating the tests

* updating benchmark

* changing models again

* Updating the whats_new file

* reverting the modification
  • Loading branch information
bruAristimunha committed May 31, 2024
1 parent f96265b commit ffff87c
Show file tree
Hide file tree
Showing 24 changed files with 33 additions and 29 deletions.
2 changes: 1 addition & 1 deletion braindecode/models/atcnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ def __init__(
n_channels=None,
n_classes=None,
input_size_s=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, input_window_seconds = deprecated_args(
self,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/deep4.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def __init__(
in_chans=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, n_times = deprecated_args(
self,
Expand Down
8 changes: 6 additions & 2 deletions braindecode/models/eegconformer.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def __init__(
n_classes=None,
n_channels=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_outputs, n_chans, n_times = deprecated_args(
self,
Expand Down Expand Up @@ -395,7 +395,11 @@ def forward(self, x):

class _FinalLayer(nn.Module):
def __init__(
self, n_classes, hidden_channels=32, return_features=False, add_log_softmax=True
self,
n_classes,
hidden_channels=32,
return_features=False,
add_log_softmax=False,
):
"""Classification head for the transformer encoder.
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eeginception.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def __init__(
in_channels=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
(
n_chans,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eeginception_erp.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def __init__(
in_channels=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
(
n_chans,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eeginception_mi.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def __init__(
in_channels=None,
n_classes=None,
input_window_s=None,
add_log_softmax=True,
add_log_softmax=False,
):
(
n_chans,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eegitnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ def __init__(
n_classes=None,
in_channels=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
(
n_outputs,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eegnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ def __init__(
in_chans=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, n_times = deprecated_args(
self,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/eegresnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def __init__(
in_chans=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, n_times = deprecated_args(
self,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/hybrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def __init__(
in_chans=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
input_window_seconds=None,
sfreq=None,
chs_info=None,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/shallow_fbcsp.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def __init__(
in_chans=None,
n_classes=None,
input_window_samples=None,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, n_times = deprecated_args(
self,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/sleep_stager_blanco_2020.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def __init__(
n_channels=None,
n_classes=None,
input_size_s=None,
add_log_softmax=True,
add_log_softmax=False,
):
(
n_chans,
Expand Down
2 changes: 1 addition & 1 deletion braindecode/models/tidnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ def __init__(
temp_span=0.05,
bottleneck=3,
summary=-1,
add_log_softmax=True,
add_log_softmax=False,
):
n_chans, n_outputs, n_times = deprecated_args(
self,
Expand Down
2 changes: 1 addition & 1 deletion docs/whats_new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Bugs
API changes
~~~~~~~~~~~
- Expose the ``use_mne_epochs parameter`` of :function:`braindecode.preprocessing.create_windows_from_events` (:gh:`607` by `Pierre Guetschel`_)

- Parameter ``use_log_softmax`` is default as `False` for all the models in (:gh:`624` by `Bruno Aristimunha`_)

.. _changes_0_8_0:
Current 0.8 (11-2022)
Expand Down
2 changes: 1 addition & 1 deletion examples/advanced_training/plot_data_augmentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ def plot_psd(data, axis, label, color):
model,
iterator_train=AugmentedDataLoader, # This tells EEGClassifier to use a custom DataLoader
iterator_train__transforms=transforms, # This sets the augmentations to use
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=predefined_split(valid_set), # using valid_set for validation
optimizer__lr=lr,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@
model,
iterator_train=AugmentedDataLoader, # This tells EEGClassifier to use a custom DataLoader
iterator_train__transforms=[], # This sets is handled by GridSearchCV
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=None, # GridSearchCV will control the split and train/validation over the dataset
optimizer__lr=lr,
Expand Down
2 changes: 1 addition & 1 deletion examples/datasets_io/benchmark_lazy_eager_loading.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def create_example_model(
model.cuda()

optimizer = optim.Adam(model.parameters())
loss = nn.NLLLoss()
loss = nn.CrossEntropyLoss()

return model, loss, optimizer

Expand Down
2 changes: 1 addition & 1 deletion examples/model_building/plot_bcic_iv_2a_moabb_cropped.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@
model,
cropped=True,
criterion=CroppedLoss,
criterion__loss_function=torch.nn.functional.nll_loss,
criterion__loss_function=torch.nn.functional.cross_entropy,
optimizer=torch.optim.AdamW,
train_split=predefined_split(valid_set),
optimizer__lr=lr,
Expand Down
2 changes: 1 addition & 1 deletion examples/model_building/plot_bcic_iv_2a_moabb_trial.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=predefined_split(valid_set), # using valid_set for validation
optimizer__lr=lr,
Expand Down
6 changes: 3 additions & 3 deletions examples/model_building/plot_how_train_test_and_tune.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=None,
optimizer__lr=lr,
Expand Down Expand Up @@ -387,7 +387,7 @@ def plot_simple_train_test(ax, all_dataset, train_set, test_set):

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=predefined_split(val_subset),
optimizer__lr=lr,
Expand Down Expand Up @@ -503,7 +503,7 @@ def plot_train_valid_test(ax, all_dataset, train_subset, val_subset, test_set):

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
train_split=None,
optimizer__lr=lr,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.AdamW,
optimizer__lr=[], # This will be handled by GridSearchCV
batch_size=batch_size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ def test_model(dataloader: DataLoader, model: Module, loss_fn, print_batch_stats
# Define the loss function
# We used the NNLoss function, which expects log probabilities as input
# (which is the case for our model output)
loss_fn = torch.nn.NLLLoss()
loss_fn = torch.nn.CrossEntropyLoss()

# train_set and test_set are instances of torch Datasets, and can seamlessly be
# wrapped in data loaders.
Expand Down Expand Up @@ -380,7 +380,7 @@ class LitModule(L.LightningModule):
def __init__(self, module):
super().__init__()
self.module = module
self.loss = torch.nn.NLLLoss()
self.loss = torch.nn.CrossEntropyLoss()

def training_step(self, batch, batch_idx):
x, y, _ = batch
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance_tests/test_trialwise_decoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def test_trialwise_decoding():
clf = EEGClassifier(
model,
cropped=False,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=torch.optim.Adam,
train_split=train_valid_split,
optimizer__lr=0.001,
Expand Down
4 changes: 2 additions & 2 deletions test/unit_tests/training/test_scoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ def on_epoch_end(self, net, *args, **kwargs):

clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=optim.AdamW,
train_split=None,
optimizer__lr=0.0625 * 0.01,
Expand Down Expand Up @@ -465,7 +465,7 @@ def test_predict_trials():
# cropped EEGClassifier, cropped data
clf = EEGClassifier(
model,
criterion=torch.nn.NLLLoss,
criterion=torch.nn.CrossEntropyLoss,
optimizer=optim.AdamW,
train_split=None,
optimizer__lr=0.0625 * 0.01,
Expand Down

0 comments on commit ffff87c

Please sign in to comment.