From 0ca3d6fdfb19b80b40da486a9792fe5788989405 Mon Sep 17 00:00:00 2001 From: bibhabasumohapatra Date: Fri, 31 Dec 2021 09:40:36 +0530 Subject: [PATCH 1/2] doctest for MultiStepScheduler --- ignite/handlers/state_param_scheduler.py | 45 +++++++++++++++++++----- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/ignite/handlers/state_param_scheduler.py b/ignite/handlers/state_param_scheduler.py index 3443d184f2a..617100be329 100644 --- a/ignite/handlers/state_param_scheduler.py +++ b/ignite/handlers/state_param_scheduler.py @@ -418,21 +418,48 @@ class MultiStepStateScheduler(StateParamScheduler): Examples: - .. code-block:: python + .. testsetup:: - ... - engine = Engine(train_step) + default_trainer = get_default_trainer() + + .. testcode:: - param_scheduler = MultiStepStateScheduler( - param_name="param", initial_value=10, gamma=0.99, milestones=[3, 6], + param_scheduler =MultiStepStateScheduler( + param_name="param", initial_value=1, gamma=0.9, milestones=[3, 6, 9, 12] ) - param_scheduler.attach(engine, Events.EPOCH_COMPLETED) + # parameter is param, initial_value sets param to 1, gamma is set as 0.9 + # Epoch 1 to 2, param does not change as milestone is 3 + # Epoch 3, param changes from 1 to 1*0.9, param = 0.9 + # Epoch 3 to 5, param does not change as milestone is 6 + # Epoch 6, param changes from 0.9 to 0.9*0.9, param = 0.81 + # Epoch 6 to 8, param does not change as milestone is 9 + # Epoch 9, param changes from 0.81 to 0.81*0.9, param = 0.729 + # Epoch 9 to 11, param does not change as milestone is 12 + # Epoch 12, param changes from 0.729 to 0.729*0.9, param = 0.6561 - # basic handler to print scheduled state parameter - engine.add_event_handler(Events.EPOCH_COMPLETED, lambda _ : print(engine.state.param)) + param_scheduler.attach(default_trainer, Events.EPOCH_COMPLETED) - engine.run([0] * 8, max_epochs=10) + @default_trainer.on(Events.EPOCH_COMPLETED) + def print_param(): + print(default_trainer.state.param) + + default_trainer.run([0], max_epochs=12) + + .. testoutput:: + + 1.0 + 1.0 + 0.9 + 0.9 + 0.9 + 0.81 + 0.81 + 0.81 + 0.7290... + 0.7290... + 0.7290... + 0.6561 .. versionadded:: 0.5.0 From e49f4a6623fb1840e697418b8b743fc6df6543f0 Mon Sep 17 00:00:00 2001 From: Sylvain Desroziers Date: Fri, 31 Dec 2021 16:52:22 +0100 Subject: [PATCH 2/2] Update ignite/handlers/state_param_scheduler.py --- ignite/handlers/state_param_scheduler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ignite/handlers/state_param_scheduler.py b/ignite/handlers/state_param_scheduler.py index 9489b9ce8c9..0888d9ce20c 100644 --- a/ignite/handlers/state_param_scheduler.py +++ b/ignite/handlers/state_param_scheduler.py @@ -444,7 +444,7 @@ class MultiStepStateScheduler(StateParamScheduler): .. testcode:: - param_scheduler =MultiStepStateScheduler( + param_scheduler = MultiStepStateScheduler( param_name="param", initial_value=1, gamma=0.9, milestones=[3, 6, 9, 12] )