Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion nemo/collections/asr/modules/conformer_encoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -1301,7 +1301,7 @@ def change_attention_model(
)
else:
raise ValueError(
f"'{self_attention_model}' is not not a valid value for 'self_attention_model', "
f"'{self_attention_model}' is not a valid value for 'self_attention_model', "
f"valid values can be from ['rel_pos', 'rel_pos_local_attn', 'abs_pos', 'rope']"
)
if device is not None:
Expand Down
2 changes: 1 addition & 1 deletion nemo/core/optim/lr_scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -925,7 +925,7 @@ def prepare_lr_scheduler(
# Raise exception if neither `max_steps` nor `t_max_epochs` is provided
if scheduler_config.get('t_max_epochs', None) is None:
logging.warning(
"`t_max_epochs` cannot be None when `max_steps` is not not provided.\n"
"`t_max_epochs` cannot be None when `max_steps` is not provided.\n"
"This can occur when `train dataloader` is not available to correctly "
"prepare the scheduler.\n"
"Scheduler will not be instantiated !"
Expand Down
15 changes: 15 additions & 0 deletions tests/core/test_optimizers_schedulers.py
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,21 @@ def test_sched_config_parse_simple(self):
scheduler_setup = optim.lr_scheduler.prepare_lr_scheduler(opt, dict_config)
assert isinstance(scheduler_setup['scheduler'], optim.lr_scheduler.CosineAnnealing)

@pytest.mark.unit
def test_sched_config_warns_when_t_max_epochs_is_none(self, caplog):
model = TempModel()
opt_cls = optim.get_optimizer('novograd')
opt = opt_cls(model.parameters(), lr=self.INITIAL_LR)

train_dataloader = torch.utils.data.DataLoader(RandomDataset(8), batch_size=2)
sched_config = {'name': 'CosineAnnealing', 't_max_epochs': None}

with caplog.at_level(logging.WARNING):
scheduler_setup = optim.lr_scheduler.prepare_lr_scheduler(opt, sched_config, train_dataloader)

assert scheduler_setup is None
assert "`t_max_epochs` cannot be None when `max_steps` is not provided" in caplog.text

@pytest.mark.unit
def test_sched_config_parse_from_cls(self):
model = TempModel()
Expand Down
Loading