in training/optimizer.py [0:0]
def step_schedulers(self, where: float, step: int) -> None:
if self.schedulers is None:
return
for i, param_group in enumerate(self.optimizer.param_groups):
for option, scheduler in self.schedulers[i].items():
if "step" in inspect.signature(scheduler.__call__).parameters:
new_value = scheduler(step=step, where=where)
elif (
hasattr(scheduler, "scheduler")
and "step"
in inspect.signature(scheduler.scheduler.__call__).parameters
):
# To handle ValueScaler wrappers
new_value = scheduler(step=step, where=where)
else:
new_value = scheduler(where)
param_group[option] = new_value