Docs: Pytorch: Optimization: correct return type of configure_optimizers (#21947)

This code example is shown in docs for Optimization:

```python
def configure_optimizers(self):
    optimizer = ...
    scheduler = torch.optim.lr_scheduler.OneCycleLR(
        optimizer, max_lr=1e-3, total_steps=self.trainer.estimated_stepping_batches
    )
    return optimizer, scheduler
```

But this raises error:

```python
>>> model = MyModel()
>>> trainer = ...
>>> trainer.fit(model=model, train_dataloaders=train_loader)
MisconfigurationException: Unknown configuration for model optimizers. Output from `model.configure_optimizers()` should be one of:
 * `Optimizer`
 * [`Optimizer`]
 * ([`Optimizer`], [`LRScheduler`])
 * {"optimizer": `Optimizer`, (optional) "lr_scheduler": `LRScheduler`}
```

It's because return type is wrong in `configure_optimizers`. To fix, changed to returning lists: `return [optimizer], [scheduler]`.
This commit is contained in:
Sohang Chopra
2026-09-17 08:37:44 +00:00
committed by GitHub
parent 320e79704a
commit fab6fb2dcf
+1 -1
View File
@@ -227,4 +227,4 @@ distributed setting into consideration so you don't have to derive it manually.
scheduler = torch.optim.lr_scheduler.OneCycleLR(
optimizer, max_lr=1e-3, total_steps=self.trainer.estimated_stepping_batches
)
return optimizer, scheduler
return [optimizer], [scheduler]