From cbd9f5b6b0fd045e6457cf1e02ef035ee86693ae Mon Sep 17 00:00:00 2001 From: puhuk Date: Thu, 7 Apr 2022 22:37:31 +0900 Subject: [PATCH 1/8] Remove deprecated gpu_metrics To resolve issue #12521 --- CHANGELOG.md | 2 +- .../connectors/logger_connector/logger_connector.py | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba38e83b77508..0c0a3fd52602a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -75,7 +75,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `terminate_on_nan` argument from the `Trainer` constructor ([#12553](https://github.com/PyTorchLightning/pytorch-lightning/pull/12553)) -- +- Removed the deprecated `gpu_metrics` argument from the `LoggerConnector` constructor ([#11111](https://github.com/PyTorchLightning/pytorch-lightning/pull/11111)) - diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index 4409f4b70ab5f..ace54c4a686fa 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -298,17 +298,6 @@ def metrics(self) -> _METRICS: assert self.trainer._results is not None return self.trainer._results.metrics(on_step) - @property - def gpus_metrics(self) -> Dict[str, float]: - """ - .. deprecated:: v1.5 - Will be removed in v1.7. - """ - if isinstance(self.trainer.accelerator, GPUAccelerator) and self.log_gpu_memory: - mem_map = memory.get_memory_profile(self.log_gpu_memory) - self._gpus_metrics.update(mem_map) - return self._gpus_metrics - @property def callback_metrics(self) -> _OUT_DICT: if self.trainer._results: From 2e4cb696f8d02cee010b93db74ce46caef0f8262 Mon Sep 17 00:00:00 2001 From: puhuk Date: Thu, 7 Apr 2022 22:39:02 +0900 Subject: [PATCH 2/8] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c0a3fd52602a..869db1f7eaf01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -75,7 +75,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `terminate_on_nan` argument from the `Trainer` constructor ([#12553](https://github.com/PyTorchLightning/pytorch-lightning/pull/12553)) -- Removed the deprecated `gpu_metrics` argument from the `LoggerConnector` constructor ([#11111](https://github.com/PyTorchLightning/pytorch-lightning/pull/11111)) +- Removed the deprecated `gpu_metrics` argument from the `LoggerConnector` constructor ([#12657](https://github.com/PyTorchLightning/pytorch-lightning/pull/12657)) - From 15ac92bcc80a92a1d30217573ea06ec38569cda7 Mon Sep 17 00:00:00 2001 From: puhuk Date: Thu, 7 Apr 2022 22:42:19 +0900 Subject: [PATCH 3/8] Update logger_connector.py --- .../trainer/connectors/logger_connector/logger_connector.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index ace54c4a686fa..794cce3d0b412 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -16,12 +16,10 @@ import torch import pytorch_lightning as pl -from pytorch_lightning.accelerators import GPUAccelerator from pytorch_lightning.loggers import LightningLoggerBase, TensorBoardLogger from pytorch_lightning.plugins.environments.slurm_environment import SLURMEnvironment from pytorch_lightning.trainer.connectors.logger_connector.result import _METRICS, _OUT_DICT, _PBAR_DICT from pytorch_lightning.trainer.states import RunningStage -from pytorch_lightning.utilities import memory from pytorch_lightning.utilities.apply_func import apply_to_collection, move_data_to_device from pytorch_lightning.utilities.metrics import metrics_to_scalars from pytorch_lightning.utilities.model_helpers import is_overridden From 01782c31a2f02c00fe8caaeb540e562554ae1ca2 Mon Sep 17 00:00:00 2001 From: puhuk Date: Thu, 7 Apr 2022 22:46:30 +0900 Subject: [PATCH 4/8] Update logger_connector.py --- .../logger_connector/logger_connector.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index 794cce3d0b412..a2ff20d10b98f 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -191,9 +191,6 @@ def update_train_step_metrics(self) -> None: if self.trainer.fit_loop._should_accumulate() and self.trainer.lightning_module.automatic_optimization: return - # TODO: remove this call in v1.7 - self._log_gpus_metrics() - # when metrics should be logged assert not self._epoch_end_reached if self.should_update_logs or self.trainer.fast_dev_run: @@ -208,21 +205,6 @@ def update_train_epoch_metrics(self) -> None: assert self.trainer._results is not None self.trainer._results.reset(metrics=True) - def _log_gpus_metrics(self) -> None: - """ - .. deprecated:: v1.5 - This function was deprecated in v1.5 in favor of - `pytorch_lightning.accelerators.gpu._get_nvidia_gpu_stats` and will be removed in v1.7. - """ - for key, mem in self.gpus_metrics.items(): - if self.log_gpu_memory == "min_max": - self.trainer.lightning_module.log(key, mem, prog_bar=False, logger=True) - else: - gpu_id = int(key.split("/")[0].split(":")[1]) - if gpu_id in self.trainer.device_ids: - self.trainer.lightning_module.log( - key, mem, prog_bar=False, logger=True, on_step=True, on_epoch=False - ) """ Utilities and properties From 412ef8a6ad3f4b71796504a4afc437c18d3dc376 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 7 Apr 2022 13:47:59 +0000 Subject: [PATCH 5/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../trainer/connectors/logger_connector/logger_connector.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index a2ff20d10b98f..62d3d36e92cb7 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -205,7 +205,6 @@ def update_train_epoch_metrics(self) -> None: assert self.trainer._results is not None self.trainer._results.reset(metrics=True) - """ Utilities and properties """ From 13e1fbf6a25369f8ff05496f66909cbac86d2062 Mon Sep 17 00:00:00 2001 From: carmocca Date: Thu, 7 Apr 2022 16:38:52 +0200 Subject: [PATCH 6/8] missed attribute --- .../trainer/connectors/logger_connector/logger_connector.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index 62d3d36e92cb7..ad0e409884702 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -11,7 +11,7 @@ # 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 typing import Any, Dict, Iterable, Optional, Union +from typing import Any, Iterable, Optional, Union import torch @@ -40,7 +40,6 @@ def __init__(self, trainer: "pl.Trainer", log_gpu_memory: Optional[str] = None) self._progress_bar_metrics: _PBAR_DICT = {} self._logged_metrics: _OUT_DICT = {} self._callback_metrics: _OUT_DICT = {} - self._gpus_metrics: Dict[str, float] = {} self._epoch_end_reached = False self._current_fx: Optional[str] = None self._batch_idx: Optional[int] = None From c217c796efc1a2ee6a32a9571007b73762b87dc9 Mon Sep 17 00:00:00 2001 From: carmocca Date: Thu, 7 Apr 2022 16:44:07 +0200 Subject: [PATCH 7/8] log_gpu_memory --- .../connectors/logger_connector/logger_connector.py | 8 +------- pytorch_lightning/trainer/trainer.py | 9 +-------- tests/deprecated_api/test_remove_1-7.py | 7 ------- 3 files changed, 2 insertions(+), 22 deletions(-) diff --git a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py index ad0e409884702..578cb5fc67b4b 100644 --- a/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py +++ b/pytorch_lightning/trainer/connectors/logger_connector/logger_connector.py @@ -27,14 +27,8 @@ class LoggerConnector: - def __init__(self, trainer: "pl.Trainer", log_gpu_memory: Optional[str] = None) -> None: + def __init__(self, trainer: "pl.Trainer") -> None: self.trainer = trainer - if log_gpu_memory is not None: - rank_zero_deprecation( - "Setting `log_gpu_memory` with the trainer flag is deprecated in v1.5 and will be removed in v1.7. " - "Please monitor GPU stats with the `DeviceStatsMonitor` callback directly instead." - ) - self.log_gpu_memory = log_gpu_memory self._val_log_step: int = 0 self._test_log_step: int = 0 self._progress_bar_metrics: _PBAR_DICT = {} diff --git a/pytorch_lightning/trainer/trainer.py b/pytorch_lightning/trainer/trainer.py index 743f2dd389c4c..e93e014950e1b 100644 --- a/pytorch_lightning/trainer/trainer.py +++ b/pytorch_lightning/trainer/trainer.py @@ -145,7 +145,6 @@ def __init__( auto_select_gpus: bool = False, tpu_cores: Optional[Union[List[int], str, int]] = None, ipus: Optional[int] = None, - log_gpu_memory: Optional[str] = None, # TODO: Remove in 1.7 enable_progress_bar: bool = True, overfit_batches: Union[int, float] = 0.0, track_grad_norm: Union[int, float, str] = -1, @@ -303,12 +302,6 @@ def __init__( of the individual loggers. Default: ``True``. - log_gpu_memory: None, 'min_max', 'all'. Might slow performance. - - .. deprecated:: v1.5 - Deprecated in v1.5.0 and will be removed in v1.7.0 - Please use the ``DeviceStatsMonitor`` callback directly instead. - log_every_n_steps: How often to log within steps. Default: ``50``. @@ -461,7 +454,7 @@ def __init__( amp_level=amp_level, plugins=plugins, ) - self._logger_connector = LoggerConnector(self, log_gpu_memory) + self._logger_connector = LoggerConnector(self) self._callback_connector = CallbackConnector(self) self._checkpoint_connector = CheckpointConnector(self, resume_from_checkpoint) self._signal_connector = SignalConnector(self) diff --git a/tests/deprecated_api/test_remove_1-7.py b/tests/deprecated_api/test_remove_1-7.py index 8e575224680e8..d488d99f93cc0 100644 --- a/tests/deprecated_api/test_remove_1-7.py +++ b/tests/deprecated_api/test_remove_1-7.py @@ -337,13 +337,6 @@ def test_v1_7_0_weights_summary_trainer(tmpdir): t.weights_summary = "blah" -def test_v1_7_0_trainer_log_gpu_memory(tmpdir): - with pytest.deprecated_call( - match="Setting `log_gpu_memory` with the trainer flag is deprecated in v1.5 and will be removed" - ): - _ = Trainer(log_gpu_memory="min_max") - - def test_v1_7_0_deprecated_slurm_job_id(): trainer = Trainer() with pytest.deprecated_call(match="Method `slurm_job_id` is deprecated in v1.6.0 and will be removed in v1.7.0."): From 4458eb2ba81e6a849695350e1f419f1b5d6ee115 Mon Sep 17 00:00:00 2001 From: carmocca Date: Thu, 7 Apr 2022 16:46:52 +0200 Subject: [PATCH 8/8] CHANGELOG --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 869db1f7eaf01..ae38bdad0034b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -75,10 +75,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). - Removed the deprecated `terminate_on_nan` argument from the `Trainer` constructor ([#12553](https://github.com/PyTorchLightning/pytorch-lightning/pull/12553)) -- Removed the deprecated `gpu_metrics` argument from the `LoggerConnector` constructor ([#12657](https://github.com/PyTorchLightning/pytorch-lightning/pull/12657)) - +- Removed the deprecated `log_gpu_memory` argument from the `Trainer` constructor ([#12657](https://github.com/PyTorchLightning/pytorch-lightning/pull/12657)) - +- Removed the deprecated automatic logging of GPU stats by the logger connector ([#12657](https://github.com/PyTorchLightning/pytorch-lightning/pull/12657)) ### Fixed