vlkit.lrscheduler package

Submodules

vlkit.lrscheduler.base module

class vlkit.lrscheduler.base.BaseScheduler(epoch_iters: int, warmup_iters: int = 0, warmup_epochs: int = 0, min_lr: float = 0, noice_std: float = 0.0, last_epoch: int = - 1)[source]

Bases: object

get_lr(iter)[source]
step(n=1)[source]

vlkit.lrscheduler.cosine module

class vlkit.lrscheduler.cosine.CosineScheduler(epoch_iters: int, epochs: int, warmup_iters: int = 0, warmup_epochs: int = 0, max_lr: float = 0.1, min_lr: float = 0, restarts: int = 0, hold_epochs: int = 0, hold_iters: int = 0, restart_decay: float = 0.1, noice_std: float = 0, last_epoch: int = - 1, **kwargs)[source]

Bases: vlkit.lrscheduler.base.BaseScheduler

get_lr(iter)[source]

vlkit.lrscheduler.step module

class vlkit.lrscheduler.step.MultiStepScheduler(epoch_iters: int, milestones: List[int], gamma: Optional[float] = None, gammas: Optional[List[float]] = None, base_lr: float = 0.1, warmup_iters: int = 0, warmup_epochs: int = 0, min_lr: float = 0, noice_std: float = 0.0, last_epoch: int = - 1, **kwargs)[source]

Bases: vlkit.lrscheduler.base.BaseScheduler

get_lr(iter)[source]

Module contents

Learning rate schedulers

Example

# multistep lr scheduler with warmup
lr_scheduler = MultiStepScheduler(epoch_size=1000, epochs=20, milestones=[4, 8], base_lr=0.1,
    gamma=[0.1, 0.1], warmup_epochs=warmup_epochs, warmup_init_lr=0.05)

# cosine scheduler with warmup restarts and noice
lr_scheduler = CosineScheduler(epoch_size=1000, epochs=20, restarts=2,
                   restart_decay=0.8, max_lr=0.1, min_lr=0.01,
                   warmup_epochs=warmup_epochs, warmup_init_lr=0.05, noice_std=0.02)
_images/lr_scheduler.svg