From 4236e3443498af6a3a838e1fddb2879a6d210bcd Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 08:53:48 +0800 Subject: [PATCH 01/10] init test: test_lr_find_with_bs_scale --- tests/trainer/test_lr_finder.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index e85c43361976d..b46ef5456e587 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -271,3 +271,23 @@ def test_lr_finder_fails_fast_on_bad_config(tmpdir): trainer = Trainer(default_root_dir=tmpdir, max_steps=2, auto_lr_find=True) with pytest.raises(MisconfigurationException, match='should have one of these fields'): trainer.tune(BoringModel()) + + +@RunIf(min_gpus=1) +def test_lr_find_with_bs_scale(tmpdir): + """ Test that lr_find runs with batch_size_scaling """ + + hparams = EvalModelTemplate.get_default_hparams() + before_lr = hparams.get('learning_rate') + model = EvalModelTemplate(**hparams) + + # logger file to get meta + trainer = Trainer( + default_root_dir=tmpdir, + max_epochs=3, + ) + bs = trainer.tuner.scale_batch_size(model) + lr = trainer.tuner.lr_find(model).suggestion() + + assert lr != before_lr + assert isinstance(bs, int) From 9625e75905ffd4ae7515b4815e11a45280a5b0c4 Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 08:58:37 +0800 Subject: [PATCH 02/10] Update test_lr_finder.py --- tests/trainer/test_lr_finder.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index b46ef5456e587..b332a41b95509 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -23,6 +23,7 @@ from tests.helpers import BoringModel from tests.helpers.datamodules import ClassifDataModule from tests.helpers.simple_models import ClassificationModel +from tests.helpers.runif import RunIf def test_error_on_more_than_1_optimizer(tmpdir): From aea85b841d99d78a8edb5214526e6b007a953858 Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 09:29:18 +0800 Subject: [PATCH 03/10] remove gpu req --- tests/trainer/test_lr_finder.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index b332a41b95509..5113dd850b54c 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -23,7 +23,6 @@ from tests.helpers import BoringModel from tests.helpers.datamodules import ClassifDataModule from tests.helpers.simple_models import ClassificationModel -from tests.helpers.runif import RunIf def test_error_on_more_than_1_optimizer(tmpdir): @@ -274,7 +273,6 @@ def test_lr_finder_fails_fast_on_bad_config(tmpdir): trainer.tune(BoringModel()) -@RunIf(min_gpus=1) def test_lr_find_with_bs_scale(tmpdir): """ Test that lr_find runs with batch_size_scaling """ From a51d50dae36386e997df3b8dfd535c4f4e38d21b Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 10:55:43 +0800 Subject: [PATCH 04/10] try boring model --- tests/trainer/test_lr_finder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 5113dd850b54c..69e554788acf9 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -278,7 +278,8 @@ def test_lr_find_with_bs_scale(tmpdir): hparams = EvalModelTemplate.get_default_hparams() before_lr = hparams.get('learning_rate') - model = EvalModelTemplate(**hparams) + model = BoringModel() + model.save_hyperparameters(hparams) # logger file to get meta trainer = Trainer( From 75a3ec15e809c7844dc92a91092eb2f1ae3a519a Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 11:21:19 +0800 Subject: [PATCH 05/10] custom boring model --- tests/trainer/test_lr_finder.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 69e554788acf9..6ac21801bb96c 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -275,11 +275,15 @@ def test_lr_finder_fails_fast_on_bad_config(tmpdir): def test_lr_find_with_bs_scale(tmpdir): """ Test that lr_find runs with batch_size_scaling """ + + class BoringModelTune(BoringModel): + def __init__(self, hparams): + super().__init__() + self.save_hyper_parameters(hparams) hparams = EvalModelTemplate.get_default_hparams() before_lr = hparams.get('learning_rate') - model = BoringModel() - model.save_hyperparameters(hparams) + model = BoringModelTune(hparams) # logger file to get meta trainer = Trainer( From be0a38b0e5cf404406625ac3fa06af1eb3df697c Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 11:22:09 +0800 Subject: [PATCH 06/10] pep8 --- tests/trainer/test_lr_finder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 6ac21801bb96c..389a56ad5ac8f 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -275,7 +275,7 @@ def test_lr_finder_fails_fast_on_bad_config(tmpdir): def test_lr_find_with_bs_scale(tmpdir): """ Test that lr_find runs with batch_size_scaling """ - + class BoringModelTune(BoringModel): def __init__(self, hparams): super().__init__() From ba1e22dea5f37fdf6ad4676fe0f405f808097ef5 Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Tue, 9 Mar 2021 11:46:18 +0800 Subject: [PATCH 07/10] fix typo --- tests/trainer/test_lr_finder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 389a56ad5ac8f..877313207f7d3 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -279,7 +279,7 @@ def test_lr_find_with_bs_scale(tmpdir): class BoringModelTune(BoringModel): def __init__(self, hparams): super().__init__() - self.save_hyper_parameters(hparams) + self.save_hyperparameters(hparams) hparams = EvalModelTemplate.get_default_hparams() before_lr = hparams.get('learning_rate') From d155f98c1f2de04eb4366a1d8ab5449db6b04b2e Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Thu, 11 Mar 2021 14:52:16 +0800 Subject: [PATCH 08/10] Update test_lr_finder.py --- tests/trainer/test_lr_finder.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 877313207f7d3..9b402da3268f8 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -277,12 +277,11 @@ def test_lr_find_with_bs_scale(tmpdir): """ Test that lr_find runs with batch_size_scaling """ class BoringModelTune(BoringModel): - def __init__(self, hparams): + def __init__(self, learning_rate=0.1, batch_size=2): super().__init__() - self.save_hyperparameters(hparams) + self.save_hyperparameters() - hparams = EvalModelTemplate.get_default_hparams() - before_lr = hparams.get('learning_rate') + before_lr = mode.hparams.learning_rate model = BoringModelTune(hparams) # logger file to get meta From cd31457f8d0debaba173f02b33387868b8213920 Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Thu, 11 Mar 2021 15:04:50 +0800 Subject: [PATCH 09/10] typo --- tests/trainer/test_lr_finder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index 9b402da3268f8..a6ff7648d9e1d 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -281,8 +281,8 @@ def __init__(self, learning_rate=0.1, batch_size=2): super().__init__() self.save_hyperparameters() - before_lr = mode.hparams.learning_rate - model = BoringModelTune(hparams) + before_lr = model.hparams.learning_rate + model = BoringModelTune() # logger file to get meta trainer = Trainer( From 097a35539ff1aa4f7fb6830062941e30265ba596 Mon Sep 17 00:00:00 2001 From: Roger Shieh Date: Thu, 11 Mar 2021 15:08:11 +0800 Subject: [PATCH 10/10] typo --- tests/trainer/test_lr_finder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/trainer/test_lr_finder.py b/tests/trainer/test_lr_finder.py index a6ff7648d9e1d..5150ea1a304f4 100644 --- a/tests/trainer/test_lr_finder.py +++ b/tests/trainer/test_lr_finder.py @@ -281,8 +281,8 @@ def __init__(self, learning_rate=0.1, batch_size=2): super().__init__() self.save_hyperparameters() - before_lr = model.hparams.learning_rate model = BoringModelTune() + before_lr = model.hparams.learning_rate # logger file to get meta trainer = Trainer(