Skip to content

Commit 047f0aa

Browse files
authored
Fix type check for non-standard schedulers in horovod (#14215)
1 parent 401eb2c commit 047f0aa

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/pytorch_lightning/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
6262
- Removed the experimental `pytorch_lightning.utiltiies.meta` functions in favor of built-in https://github.com/pytorch/torchdistx support ([#13868](https://github.com/Lightning-AI/lightning/pull/13868))
6363

6464

65+
### Fixed
66+
67+
- Fixed an assertion error when using a `ReduceOnPlateau` scheduler with the Horovod strategy ([#14215](https://github.com/Lightning-AI/lightning/pull/14215))
68+
69+
70+
6571
## [1.7.2] - 2022-08-17
6672

6773
### Added

src/pytorch_lightning/strategies/horovod.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from pytorch_lightning.utilities.exceptions import MisconfigurationException
3232
from pytorch_lightning.utilities.imports import _HOROVOD_AVAILABLE
3333
from pytorch_lightning.utilities.rank_zero import rank_zero_only
34-
from pytorch_lightning.utilities.types import _LRScheduler
3534

3635
if _HOROVOD_AVAILABLE:
3736
import horovod.torch as hvd
@@ -114,8 +113,8 @@ def _unpack_lightning_optimizer(opt: Optimizer) -> Optimizer:
114113
lr_scheduler_configs = self.lr_scheduler_configs
115114
for config in lr_scheduler_configs:
116115
scheduler = config.scheduler
117-
assert isinstance(scheduler, _LRScheduler)
118-
scheduler.base_lrs = [lr * self.world_size for lr in scheduler.base_lrs]
116+
if hasattr(scheduler, "base_lrs"):
117+
scheduler.base_lrs = [lr * self.world_size for lr in scheduler.base_lrs] # type: ignore[union-attr]
119118

120119
assert self.lightning_module is not None
121120
# Horovod: broadcast parameters & optimizer state to ensure consistent initialization

0 commit comments

Comments
 (0)