123456789101112131415161718192021222324252627282930313233343536 |
- from timm.scheduler.cosine_lr import CosineLRScheduler
- def build_scheduler(config, optimizer, n_iter_per_epoch):
- num_steps = int(config.epochs * n_iter_per_epoch)
- warmup_steps = int(config.warmup_epochs * n_iter_per_epoch)
- lr_scheduler = None
- if config.lr_scheduler.name == 'cosine':
- lr_scheduler = CosineLRScheduler(
- optimizer,
- t_initial=num_steps,
- t_mul=1.,
- lr_min=config.min_lr,
- warmup_lr_init=config.warmup_lr,
- warmup_t=warmup_steps,
- cycle_limit=1,
- t_in_epochs=False,
- )
- else:
- raise NotImplementedError(f'lr scheduler {config.lr_scheduler.name} not implemented')
- return lr_scheduler
|