From 2f337ce43a9ef54992b9a2c709bd479b5ba3a46f Mon Sep 17 00:00:00 2001 From: Kishan Savant Date: Sat, 24 Sep 2022 22:52:54 +0530 Subject: [PATCH 1/5] Remove deprecated trainer_optimizer_mixin --- src/pytorch_lightning/CHANGELOG.md | 4 +- src/pytorch_lightning/trainer/optimizers.py | 42 ------------------- src/pytorch_lightning/trainer/trainer.py | 2 - .../deprecated_api/test_remove_1-8.py | 18 -------- 4 files changed, 3 insertions(+), 63 deletions(-) diff --git a/src/pytorch_lightning/CHANGELOG.md b/src/pytorch_lightning/CHANGELOG.md index c12ea445e1b5a..cf584640631d3 100644 --- a/src/pytorch_lightning/CHANGELOG.md +++ b/src/pytorch_lightning/CHANGELOG.md @@ -224,7 +224,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `SimpleProfiler.profile_iterable` and `AdvancedProfiler.profile_iterable` attributes ([#14864](https://github.com/Lightning-AI/lightning/pull/14864)) -- Remove the deprecated `Trainer.should_rank_save_checkpoint` ([#14885](https://github.com/Lightning-AI/lightning/pull/14885)) +- Removed the deprecated `Trainer.should_rank_save_checkpoint` ([#14885](https://github.com/Lightning-AI/lightning/pull/14885)) + +- Removed the deprecated `TrainerOptimizersMixin` ### Fixed diff --git a/src/pytorch_lightning/trainer/optimizers.py b/src/pytorch_lightning/trainer/optimizers.py index fcd37c4e272c0..5ad554f6ac68f 100644 --- a/src/pytorch_lightning/trainer/optimizers.py +++ b/src/pytorch_lightning/trainer/optimizers.py @@ -21,45 +21,3 @@ from pytorch_lightning.core.optimizer import _init_optimizers_and_lr_schedulers, LightningOptimizer from pytorch_lightning.utilities.rank_zero import rank_zero_deprecation - -class TrainerOptimizersMixin(ABC): - r""" - .. deprecated:: v1.6 - The `TrainerOptimizersMixin` was deprecated in v1.6 and will be removed in v1.8. - """ - - def init_optimizers(self, model: Optional["pl.LightningModule"]) -> Tuple[List, List, List]: - r""" - .. deprecated:: v1.6 - `TrainerOptimizersMixin.init_optimizers` was deprecated in v1.6 and will be removed in v1.8. - """ - rank_zero_deprecation( - "`TrainerOptimizersMixin.init_optimizers` was deprecated in v1.6 and will be removed in v1.8." - ) - pl_module = self.lightning_module or model - assert isinstance(pl_module, pl.LightningModule) - return _init_optimizers_and_lr_schedulers(pl_module) - - def convert_to_lightning_optimizers(self) -> None: - r""" - .. deprecated:: v1.6 - `TrainerOptimizersMixin.convert_to_lightning_optimizers` was deprecated in v1.6 and will be removed in v1.8. - """ - rank_zero_deprecation( - "`TrainerOptimizersMixin.convert_to_lightning_optimizers` was deprecated in v1.6 and will be removed in " - "v1.8." - ) - - def _convert_to_lightning_optimizer(optimizer: Optimizer) -> LightningOptimizer: - if not isinstance(optimizer, LightningOptimizer): - optimizer = LightningOptimizer(optimizer) # type: ignore [assignment] - optimizer._trainer = self - for opt_idx, opt in enumerate(self.optimizers): - if opt == optimizer._optimizer: - optimizer._optimizer_idx = opt_idx - break - return optimizer # type: ignore [return-value] - - self.strategy._cached_lightning_optimizers = { - idx: _convert_to_lightning_optimizer(opt) for idx, opt in enumerate(self.optimizers) - } diff --git a/src/pytorch_lightning/trainer/trainer.py b/src/pytorch_lightning/trainer/trainer.py index 6f3e0d4ce7c4c..76505df9d5aff 100644 --- a/src/pytorch_lightning/trainer/trainer.py +++ b/src/pytorch_lightning/trainer/trainer.py @@ -76,7 +76,6 @@ from pytorch_lightning.trainer.connectors.logger_connector.result import _ResultCollection from pytorch_lightning.trainer.connectors.signal_connector import SignalConnector from pytorch_lightning.trainer.data_loading import TrainerDataLoadingMixin -from pytorch_lightning.trainer.optimizers import TrainerOptimizersMixin from pytorch_lightning.trainer.states import RunningStage, TrainerFn, TrainerState, TrainerStatus from pytorch_lightning.trainer.supporters import CombinedLoader from pytorch_lightning.tuner.tuning import _TunerResult, Tuner @@ -111,7 +110,6 @@ class Trainer( - TrainerOptimizersMixin, # TODO: Remove in v1.8 TrainerDataLoadingMixin, # TODO: Remove in v1.8 ): @_defaults_from_env_vars diff --git a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py index aa25c1cdda8ed..54b71ae9a8dc6 100644 --- a/tests/tests_pytorch/deprecated_api/test_remove_1-8.py +++ b/tests/tests_pytorch/deprecated_api/test_remove_1-8.py @@ -91,24 +91,6 @@ def test_v1_8_0_trainer_ckpt_path_attributes(fn_prefix: str): setattr(trainer, test_attr, "v") -def test_v1_8_0_trainer_optimizers_mixin(): - trainer = Trainer() - model = BoringModel() - trainer.strategy.connect(model) - trainer.lightning_module.trainer = trainer - - with pytest.deprecated_call( - match=r"`TrainerOptimizersMixin.init_optimizers` was deprecated in v1.6 and will be removed in v1.8." - ): - trainer.init_optimizers(model) - - with pytest.deprecated_call( - match=r"`TrainerOptimizersMixin.convert_to_lightning_optimizers` was deprecated in v1.6 and will be removed in " - "v1.8." - ): - trainer.convert_to_lightning_optimizers() - - def test_v1_8_0_deprecate_trainer_data_loading_mixin(): trainer = Trainer(max_epochs=1) model = BoringModel() From 120ce385495e55595506fab3441195ac547aa752 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 17:27:32 +0000 Subject: [PATCH 2/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/pytorch_lightning/trainer/optimizers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pytorch_lightning/trainer/optimizers.py b/src/pytorch_lightning/trainer/optimizers.py index 5ad554f6ac68f..3335a0407f4c1 100644 --- a/src/pytorch_lightning/trainer/optimizers.py +++ b/src/pytorch_lightning/trainer/optimizers.py @@ -20,4 +20,3 @@ import pytorch_lightning as pl from pytorch_lightning.core.optimizer import _init_optimizers_and_lr_schedulers, LightningOptimizer from pytorch_lightning.utilities.rank_zero import rank_zero_deprecation - From eff5d0574d2cb6728e43e85b331e5cdb0b0f8852 Mon Sep 17 00:00:00 2001 From: Kishan Savant Date: Sat, 24 Sep 2022 23:14:27 +0530 Subject: [PATCH 3/5] Removed trainer/optimizers.py --- src/pytorch_lightning/trainer/optimizers.py | 22 --------------------- 1 file changed, 22 deletions(-) delete mode 100644 src/pytorch_lightning/trainer/optimizers.py diff --git a/src/pytorch_lightning/trainer/optimizers.py b/src/pytorch_lightning/trainer/optimizers.py deleted file mode 100644 index 3335a0407f4c1..0000000000000 --- a/src/pytorch_lightning/trainer/optimizers.py +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright The PyTorch Lightning team. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from abc import ABC -from typing import List, Optional, Tuple - -from torch.optim import Optimizer - -import pytorch_lightning as pl -from pytorch_lightning.core.optimizer import _init_optimizers_and_lr_schedulers, LightningOptimizer -from pytorch_lightning.utilities.rank_zero import rank_zero_deprecation From 91c0b336d56a9ff5162c505822fc6a9b0b3ee2d7 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 25 Sep 2022 00:17:09 +0530 Subject: [PATCH 4/5] Apply suggestions from code review --- src/pytorch_lightning/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pytorch_lightning/CHANGELOG.md b/src/pytorch_lightning/CHANGELOG.md index cf584640631d3..c41e3ad573cd5 100644 --- a/src/pytorch_lightning/CHANGELOG.md +++ b/src/pytorch_lightning/CHANGELOG.md @@ -226,7 +226,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `Trainer.should_rank_save_checkpoint` ([#14885](https://github.com/Lightning-AI/lightning/pull/14885)) -- Removed the deprecated `TrainerOptimizersMixin` +- Removed the deprecated `TrainerOptimizersMixin` ([#14887](https://github.com/Lightning-AI/lightning/pull/14887)) ### Fixed From a7043028f41dfdb60008ea7d0bc021acdde39e30 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 25 Sep 2022 00:18:51 +0530 Subject: [PATCH 5/5] add missed chlog link --- src/pytorch_lightning/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pytorch_lightning/CHANGELOG.md b/src/pytorch_lightning/CHANGELOG.md index d61bb7dc89373..00b91a75d64dd 100644 --- a/src/pytorch_lightning/CHANGELOG.md +++ b/src/pytorch_lightning/CHANGELOG.md @@ -221,7 +221,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `Trainer.use_amp` and `LightningModule.use_amp` attributes ([#14832](https://github.com/Lightning-AI/lightning/pull/14832)) -- Removed the deprecated `Trainer.run_stage` in favor of `Trainer.{fit,validate,test,predict}` + +- Removed the deprecated `Trainer.run_stage` in favor of `Trainer.{fit,validate,test,predict}` ([#14870](https://github.com/Lightning-AI/lightning/pull/14870)) - Removed the deprecated `SimpleProfiler.profile_iterable` and `AdvancedProfiler.profile_iterable` attributes ([#14864](https://github.com/Lightning-AI/lightning/pull/14864))