fix: unify scheduler min_rate default to 0.01, clamp WSD warmup
This commit is contained in:
parent
dc9faca3b1
commit
500c605fad
|
|
@ -53,7 +53,7 @@ class CosineScheduler(BaseScheduler):
|
||||||
optimizer,
|
optimizer,
|
||||||
warmup_steps: int,
|
warmup_steps: int,
|
||||||
lr_decay_steps: int,
|
lr_decay_steps: int,
|
||||||
min_rate: float = 0.05,
|
min_rate: float = 0.01,
|
||||||
last_epoch: int = -1,
|
last_epoch: int = -1,
|
||||||
):
|
):
|
||||||
self.warmup_steps = warmup_steps
|
self.warmup_steps = warmup_steps
|
||||||
|
|
@ -104,7 +104,7 @@ class SGDRScheduler(BaseScheduler):
|
||||||
optimizer,
|
optimizer,
|
||||||
warmup_steps: int,
|
warmup_steps: int,
|
||||||
cycle_length: int,
|
cycle_length: int,
|
||||||
min_rate: float = 0.05,
|
min_rate: float = 0.01,
|
||||||
t_mult: int = 2,
|
t_mult: int = 2,
|
||||||
last_epoch: int = -1,
|
last_epoch: int = -1,
|
||||||
):
|
):
|
||||||
|
|
@ -182,7 +182,7 @@ class WSDScheduler(BaseScheduler):
|
||||||
warmup_steps: int,
|
warmup_steps: int,
|
||||||
stable_steps: int,
|
stable_steps: int,
|
||||||
decay_steps: int,
|
decay_steps: int,
|
||||||
min_rate: float = 0.0,
|
min_rate: float = 0.01,
|
||||||
last_epoch: int = -1,
|
last_epoch: int = -1,
|
||||||
):
|
):
|
||||||
self.warmup_steps = warmup_steps
|
self.warmup_steps = warmup_steps
|
||||||
|
|
@ -194,7 +194,7 @@ class WSDScheduler(BaseScheduler):
|
||||||
|
|
||||||
def get_lr(self) -> List[float]:
|
def get_lr(self) -> List[float]:
|
||||||
if self.last_epoch < self.warmup_steps:
|
if self.last_epoch < self.warmup_steps:
|
||||||
factor = self.last_epoch / max(self.warmup_steps, 1)
|
factor = max(self.min_rate, self.last_epoch / max(self.warmup_steps, 1))
|
||||||
return [base_lr * factor for base_lr in self.base_lrs]
|
return [base_lr * factor for base_lr in self.base_lrs]
|
||||||
|
|
||||||
offset = self.last_epoch - self.warmup_steps
|
offset = self.last_epoch - self.warmup_steps
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue