Delete deprecated `TrainerTrainingTricksMixin` (#8679)
This commit is contained in:
parent
d187008e84
commit
cf0d362658
|
@ -61,16 +61,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
||||||
- Removed the deprecated `outputs` argument in both the `LightningModule.on_train_epoch_end` and `Callback.on_train_epoch_end` hooks ([#8587](https://github.com/PyTorchLightning/pytorch-lightning/pull/8587))
|
- Removed the deprecated `outputs` argument in both the `LightningModule.on_train_epoch_end` and `Callback.on_train_epoch_end` hooks ([#8587](https://github.com/PyTorchLightning/pytorch-lightning/pull/8587))
|
||||||
|
|
||||||
|
|
||||||
|
- Removed the deprecated `TrainerLoggingMixin` class ([#8609](https://github.com/PyTorchLightning/pytorch-lightning/pull/8609))
|
||||||
|
|
||||||
- Delete the deprecated `TrainerLoggingMixin` class ([#8609](https://github.com/PyTorchLightning/pytorch-lightning/pull/8609))
|
|
||||||
|
|
||||||
|
- Removed the deprecated `TrainerTrainingTricksMixin` class ([#8679](https://github.com/PyTorchLightning/pytorch-lightning/pull/8679))
|
||||||
|
|
||||||
|
|
||||||
- Removed the deprecated `optimizer_idx` from `training_step` as an accepted argument in manual optimization ([#8576](https://github.com/PyTorchLightning/pytorch-lightning/pull/8576))
|
- Removed the deprecated `optimizer_idx` from `training_step` as an accepted argument in manual optimization ([#8576](https://github.com/PyTorchLightning/pytorch-lightning/pull/8576))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed `trainer.fit_loop.split_idx` always returning `None` ([#8601](https://github.com/PyTorchLightning/pytorch-lightning/pull/8601))
|
- Fixed `trainer.fit_loop.split_idx` always returning `None` ([#8601](https://github.com/PyTorchLightning/pytorch-lightning/pull/8601))
|
||||||
|
|
|
@ -62,7 +62,6 @@ from pytorch_lightning.trainer.model_hooks import TrainerModelHooksMixin
|
||||||
from pytorch_lightning.trainer.optimizers import TrainerOptimizersMixin
|
from pytorch_lightning.trainer.optimizers import TrainerOptimizersMixin
|
||||||
from pytorch_lightning.trainer.properties import TrainerProperties
|
from pytorch_lightning.trainer.properties import TrainerProperties
|
||||||
from pytorch_lightning.trainer.states import TrainerFn, TrainerState, TrainerStatus
|
from pytorch_lightning.trainer.states import TrainerFn, TrainerState, TrainerStatus
|
||||||
from pytorch_lightning.trainer.training_tricks import TrainerTrainingTricksMixin
|
|
||||||
from pytorch_lightning.tuner.auto_gpu_select import pick_multiple_gpus
|
from pytorch_lightning.tuner.auto_gpu_select import pick_multiple_gpus
|
||||||
from pytorch_lightning.tuner.lr_finder import _LRFinder
|
from pytorch_lightning.tuner.lr_finder import _LRFinder
|
||||||
from pytorch_lightning.tuner.tuning import Tuner
|
from pytorch_lightning.tuner.tuning import Tuner
|
||||||
|
@ -96,7 +95,6 @@ class Trainer(
|
||||||
TrainerCallbackHookMixin,
|
TrainerCallbackHookMixin,
|
||||||
TrainerModelHooksMixin,
|
TrainerModelHooksMixin,
|
||||||
TrainerOptimizersMixin,
|
TrainerOptimizersMixin,
|
||||||
TrainerTrainingTricksMixin,
|
|
||||||
TrainerDataLoadingMixin,
|
TrainerDataLoadingMixin,
|
||||||
DeprecatedTrainerAttributes,
|
DeprecatedTrainerAttributes,
|
||||||
):
|
):
|
||||||
|
|
|
@ -1,58 +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.
|
|
||||||
|
|
||||||
import logging
|
|
||||||
from abc import ABC
|
|
||||||
|
|
||||||
import torch
|
|
||||||
from torch import Tensor
|
|
||||||
|
|
||||||
import pytorch_lightning as pl
|
|
||||||
from pytorch_lightning.utilities import rank_zero_deprecation
|
|
||||||
from pytorch_lightning.utilities.finite_checks import detect_nan_parameters, print_nan_gradients
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class TrainerTrainingTricksMixin(ABC):
|
|
||||||
"""
|
|
||||||
TODO: Remove this class in v1.5.
|
|
||||||
|
|
||||||
Use the NaN utilities from ``pytorch_lightning.utilities.finite_checks`` instead.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# this is just a summary on variables used in this abstract class,
|
|
||||||
# the proper values/initialisation should be done in child class
|
|
||||||
lightning_module: "pl.LightningModule"
|
|
||||||
|
|
||||||
def print_nan_gradients(self) -> None:
|
|
||||||
rank_zero_deprecation(
|
|
||||||
"Internal: TrainerTrainingTricksMixin.print_nan_gradients is deprecated in v1.3"
|
|
||||||
" and will be removed in v1.5."
|
|
||||||
" Use `pytorch_lightning.utilities.finite_checks.print_nan_gradients` instead."
|
|
||||||
)
|
|
||||||
model = self.lightning_module
|
|
||||||
print_nan_gradients(model)
|
|
||||||
|
|
||||||
def detect_nan_tensors(self, loss: Tensor) -> None:
|
|
||||||
rank_zero_deprecation(
|
|
||||||
"Internal: TrainerTrainingTricksMixin.detect_nan_tensors is deprecated in v1.3"
|
|
||||||
" and will be removed in v1.5."
|
|
||||||
" Use `pytorch_lightning.utilities.finite_checks.detect_nan_parameters` instead."
|
|
||||||
)
|
|
||||||
# check if loss is nan
|
|
||||||
if not torch.isfinite(loss).all():
|
|
||||||
raise ValueError("The loss returned in `training_step` is nan or inf.")
|
|
||||||
model = self.lightning_module
|
|
||||||
detect_nan_parameters(model)
|
|
|
@ -181,18 +181,6 @@ def test_v1_5_0_profiler_output_filename(tmpdir, cls):
|
||||||
assert profiler.filename == "test"
|
assert profiler.filename == "test"
|
||||||
|
|
||||||
|
|
||||||
def test_v1_5_0_trainer_training_trick_mixin(tmpdir):
|
|
||||||
model = BoringModel()
|
|
||||||
trainer = Trainer(default_root_dir=tmpdir, max_epochs=1, checkpoint_callback=False, logger=False)
|
|
||||||
trainer.fit(model)
|
|
||||||
with pytest.deprecated_call(match="is deprecated in v1.3 and will be removed in v1.5"):
|
|
||||||
trainer.print_nan_gradients()
|
|
||||||
|
|
||||||
dummy_loss = torch.tensor(1.0)
|
|
||||||
with pytest.deprecated_call(match="is deprecated in v1.3 and will be removed in v1.5"):
|
|
||||||
trainer.detect_nan_tensors(dummy_loss)
|
|
||||||
|
|
||||||
|
|
||||||
def test_v1_5_0_auto_move_data():
|
def test_v1_5_0_auto_move_data():
|
||||||
with pytest.deprecated_call(match="deprecated in v1.3 and will be removed in v1.5.*was applied to `bar`"):
|
with pytest.deprecated_call(match="deprecated in v1.3 and will be removed in v1.5.*was applied to `bar`"):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue