Returns an initialized PyTorch learning-rate scheduler.
| Parameters: |
-
class_name
(str)
–
The name of the scheduler class defined in
torch.optim.lr_scheduler,
e.g. "StepLR", "CosineAnnealingLR", or "ExponentialLR".
-
scheduler_kwargs
(Dict[str, Any])
–
The keyword arguments to pass to the scheduler constructor,
e.g. {"step_size": 10, "gamma": 0.1}.
-
optimizer
(Optimizer)
–
The optimizer whose learning rate will be scheduled.
|
| Returns: |
-
LRScheduler
–
An initialized instance of the specified PyTorch scheduler.
|
Source code in aidevelopmenttoolkit/torch_utils/optimizer_utils.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 | def get_lr_scheduler(
class_name: str,
scheduler_kwargs: dict[str, Any],
optimizer: Optimizer,
) -> LRScheduler:
"""Returns an initialized PyTorch learning-rate scheduler.
Parameters
----------
class_name : str
The name of the scheduler class defined in
`torch.optim.lr_scheduler`,
e.g. "StepLR", "CosineAnnealingLR", or "ExponentialLR".
scheduler_kwargs : Dict[str, Any]
The keyword arguments to pass to the scheduler constructor,
e.g. {"step_size": 10, "gamma": 0.1}.
optimizer : Optimizer
The optimizer whose learning rate will be scheduled.
Returns
-------
LRScheduler
An initialized instance of the specified PyTorch scheduler.
"""
scheduler_class = getattr(torch.optim.lr_scheduler, class_name, None)
if (
not isinstance(scheduler_class, type)
or not issubclass(scheduler_class, LRScheduler)
):
logger.error(
f"Value error: '{class_name}' is not a valid PyTorch "
"learning-rate scheduler class.", ValueError
)
return scheduler_class(optimizer, **scheduler_kwargs)
|