Python torch.optim.lr_scheduler.CosineAnnealingLR() Examples
The following are 26
code examples of torch.optim.lr_scheduler.CosineAnnealingLR().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.optim.lr_scheduler
, or try the search function
.
Example #1
Source File: networks.py From deepsaber with GNU General Public License v3.0 | 8 votes |
def get_scheduler(optimizer, opt): if opt.lr_policy == 'lambda': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.nepoch) / float(opt.nepoch_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.nepoch, eta_min=0) elif opt.lr_policy == 'cyclic': scheduler = CyclicLR(optimizer, base_lr=opt.learning_rate / 10, max_lr=opt.learning_rate, step_size=opt.nepoch_decay, mode='triangular2') else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler # learning rate schedules
Example #2
Source File: base_net.py From One_Shot_Face_Reenactment with MIT License | 7 votes |
def get_scheduler(optimizer, opt): if opt.lr_policy == 'lambda': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch- opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR( optimizer, step_size=opt.lr_decay_iters, gamma=0.5) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau( optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR( optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #3
Source File: main.py From Tricks-of-Semi-supervisedDeepLeanring-Pytorch with MIT License | 7 votes |
def create_lr_scheduler(optimizer, config): if config.lr_scheduler == 'cos': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=config.epochs, eta_min=config.min_lr) elif config.lr_scheduler == 'multistep': if config.steps is None: return None if isinstance(config.steps, int): config.steps = [config.steps] scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=config.steps, gamma=config.gamma) elif config.lr_scheduler == 'exp-warmup': lr_lambda = exp_warmup(config.rampup_length, config.rampdown_length, config.epochs) scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lr_lambda) elif config.lr_scheduler == 'none': scheduler = None else: raise ValueError("No such scheduler: {}".format(config.lr_scheduler)) return scheduler
Example #4
Source File: ssds_train.py From ssds.pytorch with MIT License | 6 votes |
def configure_lr_scheduler(self, optimizer, cfg): if cfg.SCHEDULER == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=cfg.STEPS[0], gamma=cfg.GAMMA) elif cfg.SCHEDULER == 'multi_step': scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=cfg.STEPS, gamma=cfg.GAMMA) elif cfg.SCHEDULER == 'exponential': scheduler = lr_scheduler.ExponentialLR(optimizer, gamma=cfg.GAMMA) elif cfg.SCHEDULER == 'SGDR': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=cfg.MAX_EPOCHS) else: AssertionError('scheduler can not be recognized.') return scheduler
Example #5
Source File: networks_pono.py From PONO with MIT License | 6 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #6
Source File: pix2pix.py From ncsn with GNU General Public License v3.0 | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #7
Source File: lr_scheduler.py From XenonPy with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, *, T_max, eta_min=0, last_epoch=-1): r"""Set the learning rate of each parameter group using a cosine annealing schedule, where :math:`\eta_{max}` is set to the initial lr and :math:`T_{cur}` is the number of epochs since the last restart in SGDR: .. math:: \eta_{t+1} = \eta_{min} + (\eta_t - \eta_{min})\frac{1 + \cos(\frac{T_{cur+1}}{T_{max}}\pi)}{1 + \cos(\frac{T_{cur}}{T_{max}}\pi)}, T_{cur} \neq (2k+1)T_{max};\\ \eta_{t+1} = \eta_{t} + (\eta_{max} - \eta_{min})\frac{1 - \cos(\frac{1}{T_{max}}\pi)}{2}, T_{cur} = (2k+1)T_{max}.\\ When last_epoch=-1, sets initial lr as lr. Notice that because the schedule is defined recursively, the learning rate can be simultaneously modified outside this scheduler by other operators. If the learning rate is set solely by this scheduler, the learning rate at each step becomes: .. math:: \eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})(1 + \cos(\frac{T_{cur}}{T_{max}}\pi)) It has been proposed in `SGDR: Stochastic Gradient Descent with Warm Restarts`_. Note that this only implements the cosine annealing part of SGDR, and not the restarts. Args: T_max (int): Maximum number of iterations. eta_min (float): Minimum learning rate. Default: 0. last_epoch (int): The index of last epoch. Default: -1. .. _SGDR\: Stochastic Gradient Descent with Warm Restarts: https://arxiv.org/abs/1608.03983 """ super().__init__(lr_scheduler.CosineAnnealingLR, T_max=T_max, eta_min=eta_min, last_epoch=last_epoch)
Example #8
Source File: scheduler.py From ACAN with MIT License | 5 votes |
def create_scheduler(args, optimizer, datasets): if args.scheduler == 'step': scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=eval(args.milestones), gamma=args.lr_decay) elif args.scheduler == 'poly': total_step = (len(datasets['train']) / args.batch + 1) * args.epochs scheduler = lr_scheduler.LambdaLR(optimizer, lambda x: (1-x/total_step) ** args.power) elif args.scheduler == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=args.lr_decay, patience=args.patience) elif args.scheduler == 'constant': scheduler = lr_scheduler.LambdaLR(optimizer, lambda x: 1) elif args.scheduler == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, args.T_max, args.min_lr) return scheduler
Example #9
Source File: networks.py From 2019-CCF-BDCI-OCR-MCZJ-OCR-IdentificationIDElement with MIT License | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #10
Source File: maml_pytorch.py From sigver with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, model, num_updates, test_num_updates, task_lr, meta_task_lr, meta_task_min_lr, max_epochs, learn_task_lr, weights, device, callback=None, loss_function=F.cross_entropy, is_classification=True): self.model = model self.num_updates = num_updates self.test_num_updates = test_num_updates self.task_lr = torch.full((num_updates, len(weights)), task_lr, requires_grad=True, device=device) self.meta_task_lr = meta_task_lr self.callback = callback self.loss_function = loss_function self.is_classification = is_classification self.weights = weights model_params = list(model.parameters()) self.parameters = model_params + list(weights.values()) if learn_task_lr: self.parameters.append(self.task_lr) self.optimizer = Adam(self.parameters, meta_task_lr) self.scheduler = CosineAnnealingLR( optimizer=self.optimizer, T_max=max_epochs, eta_min=meta_task_min_lr) self.callback = callback or noop_callback()
Example #11
Source File: train_siamfc.py From SiamDW with MIT License | 5 votes |
def lr_decay(cfg, optimizer): if cfg.SIAMFC.TRAIN.LR_POLICY == 'exp': scheduler = ExponentialLR(optimizer, gamma=0.8685) elif cfg.SIAMFC.TRAIN.LR_POLICY == 'cos': scheduler = CosineAnnealingLR(optimizer, T_max=args.epochs) elif cfg.SIAMFC.TRAIN.LR_POLICY == 'Reduce': scheduler = ReduceLROnPlateau(optimizer, patience=5) elif cfg.SIAMFC.TRAIN.LR_POLICY == 'log': scheduler = np.logspace(math.log10(cfg.SIAMFC.TRAIN.LR), math.log10(cfg.SIAMFC.TRAIN.LR_END), cfg.SIAMFC.TRAIN.END_EPOCH) else: raise ValueError('unsupported learing rate scheduler') return scheduler
Example #12
Source File: train_siamrpn.py From SiamDW with MIT License | 5 votes |
def lr_decay(cfg, optimizer): if cfg.SIAMRPN.TRAIN.LR_POLICY == 'exp': scheduler = ExponentialLR(optimizer, gamma=0.8685) elif cfg.SIAMRPN.TRAIN.LR_POLICY == 'cos': scheduler = CosineAnnealingLR(optimizer, T_max=args.epochs) elif cfg.SIAMRPN.TRAIN.LR_POLICY == 'Reduce': scheduler = ReduceLROnPlateau(optimizer, patience=5) elif cfg.SIAMRPN.TRAIN.LR_POLICY == 'log': scheduler = np.logspace(math.log10(cfg.SIAMRPN.TRAIN.LR), math.log10(cfg.SIAMRPN.TRAIN.LR_END), cfg.SIAMRPN.TRAIN.END_EPOCH) else: raise ValueError('unsupported learing rate scheduler') return scheduler
Example #13
Source File: networks.py From Shift-Net_pytorch with MIT License | 5 votes |
def get_scheduler(optimizer, opt): if opt.lr_policy == 'lambda': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + 1 + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #14
Source File: networks.py From CAG_UDA with MIT License | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #15
Source File: scheduler_factory.py From kaggle-hpa with BSD 2-Clause "Simplified" License | 5 votes |
def cosine(optimizer, last_epoch, T_max=50, eta_min=0.00001, **_): print('cosine annealing, T_max: {}, eta_min: {}, last_epoch: {}'.format(T_max, eta_min, last_epoch)) return lr_scheduler.CosineAnnealingLR(optimizer, T_max=T_max, eta_min=eta_min, last_epoch=last_epoch)
Example #16
Source File: pix2pix_model.py From DeepMosaics with GNU General Public License v3.0 | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #17
Source File: lr_scheduler.py From fast-reid with Apache License 2.0 | 5 votes |
def DelayedCosineAnnealingLR(optimizer, delay_iters, max_iters, eta_min_lr, warmup_factor, warmup_iters, warmup_method, **kwargs, ): cosine_annealing_iters = max_iters - delay_iters base_scheduler = CosineAnnealingLR(optimizer, cosine_annealing_iters, eta_min_lr) return DelayedScheduler(optimizer, delay_iters, base_scheduler, warmup_factor, warmup_iters, warmup_method)
Example #18
Source File: scheduler_factory.py From kaggle-humpback with BSD 2-Clause "Simplified" License | 5 votes |
def cosine(optimizer, last_epoch, T_max=50, eta_min=0.00001, **_): print('cosine annealing, T_max: {}, eta_min: {}, last_epoch: {}'.format(T_max, eta_min, last_epoch)) return lr_scheduler.CosineAnnealingLR(optimizer, T_max=T_max, eta_min=eta_min, last_epoch=last_epoch)
Example #19
Source File: blocks.py From FET-GAN with MIT License | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option dicts) -- stores all the experiment flags; opt['lr_policy'] is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt['nepoch']> epochs and linearly decay the rate to zero over the next <opt['nepoch_decay']> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt['lr_policy'] == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt['epoch_count'] - opt['nepoch']) / float(opt['nepoch_decay'] + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt['lr_policy'] == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt['lr_decay_iters'], gamma=0.1) elif opt['lr_policy'] == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt['lr_policy'] == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt['nepoch'], eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt['lr_policy']) return scheduler
Example #20
Source File: lr_schedulers.py From argus with MIT License | 5 votes |
def __init__(self, T_max, eta_min=0, step_on_iteration=False): super().__init__( lambda opt: _scheduler.CosineAnnealingLR(opt, T_max, eta_min=eta_min), step_on_iteration=step_on_iteration )
Example #21
Source File: trainer.py From GCA-Matting with MIT License | 5 votes |
def restore_model(self, resume_checkpoint): """ Restore the trained generator and discriminator. :param resume_checkpoint: File name of checkpoint :return: """ pth_path = os.path.join(self.log_config.checkpoint_path, '{}.pth'.format(resume_checkpoint)) checkpoint = torch.load(pth_path, map_location = lambda storage, loc: storage.cuda(CONFIG.gpu)) self.resume_step = checkpoint['iter'] self.logger.info('Loading the trained models from step {}...'.format(self.resume_step)) self.G.load_state_dict(checkpoint['state_dict'], strict=True) if not self.train_config.reset_lr: if 'opt_state_dict' in checkpoint.keys(): try: self.G_optimizer.load_state_dict(checkpoint['opt_state_dict']) except ValueError as ve: self.logger.error("{}".format(ve)) else: self.logger.info('No Optimizer State Loaded!!') if 'lr_state_dict' in checkpoint.keys(): try: self.G_scheduler.load_state_dict(checkpoint['lr_state_dict']) except ValueError as ve: self.logger.error("{}".format(ve)) else: self.G_scheduler = lr_scheduler.CosineAnnealingLR(self.G_optimizer, T_max=self.train_config.total_step - self.resume_step - 1) if 'loss' in checkpoint.keys(): self.best_loss = checkpoint['loss']
Example #22
Source File: trainer.py From GCA-Matting with MIT License | 5 votes |
def build_lr_scheduler(self): """Build cosine learning rate scheduler.""" self.G_scheduler = lr_scheduler.CosineAnnealingLR(self.G_optimizer, T_max=self.train_config.total_step - self.train_config.warmup_step)
Example #23
Source File: networks.py From EvolutionaryGAN-pytorch with MIT License | 5 votes |
def get_scheduler(optimizer, opt): """Return a learning rate scheduler Parameters: optimizer -- the optimizer of the network opt (option class) -- stores all the experiment flags; needs to be a subclass of BaseOptions. opt.lr_policy is the name of learning rate policy: linear | step | plateau | cosine For 'linear', we keep the same learning rate for the first <opt.niter> epochs and linearly decay the rate to zero over the next <opt.niter_decay> epochs. For other schedulers (step, plateau, and cosine), we use the default PyTorch schedulers. See https://pytorch.org/docs/stable/optim.html for more details. """ if opt.lr_policy == 'linear': def lambda_rule(epoch): lr_l = 1.0 - max(0, epoch + opt.epoch_count - opt.niter) / float(opt.niter_decay + 1) return lr_l scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda_rule) elif opt.lr_policy == 'step': scheduler = lr_scheduler.StepLR(optimizer, step_size=opt.lr_decay_iters, gamma=0.1) elif opt.lr_policy == 'plateau': scheduler = lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.2, threshold=0.01, patience=5) elif opt.lr_policy == 'cosine': scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=opt.niter, eta_min=0) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #24
Source File: cyclical_lr_scheduler.py From pipeline with MIT License | 5 votes |
def __init__(self, optimizer, T_max, eta_min=0, last_epoch=-1): scheduler = CosineAnnealingLR( optimizer, T_max=T_max, eta_min=eta_min, last_epoch=last_epoch, ) super().__init__(scheduler)
Example #25
Source File: cyclical_lr_scheduler.py From pipeline with MIT License | 5 votes |
def __init__(self, optimizer, T_max, eta_min=0, last_epoch=-1): scheduler = CosineAnnealingLR( optimizer, T_max=T_max, eta_min=eta_min, last_epoch=last_epoch, ) super().__init__(scheduler)
Example #26
Source File: lr_scheduler.py From DenseNAS with Apache License 2.0 | 4 votes |
def get_lr_scheduler(config, optimizer, num_examples=None): if num_examples is None: num_examples = config.data.num_examples epoch_steps = num_examples // config.data.batch_size + 1 if config.optim.use_multi_stage: max_steps = epoch_steps * config.optim.multi_stage.stage_epochs else: max_steps = epoch_steps * config.train_params.epochs period_steps = [epoch_steps * x for x in config.optim.cosine.restart.lr_period] step_steps = [epoch_steps * x for x in config.optim.cosine.restart.lr_step] init_lr = config.optim.init_lr use_warmup = config.optim.use_warm_up if use_warmup: warmup_steps = config.optim.warm_up.epoch * epoch_steps warmup_startlr = config.optim.warm_up.init_lr warmup_targetlr = config.optim.warm_up.target_lr else: warmup_steps = 0 warmup_startlr = init_lr warmup_targetlr = init_lr if config.optim.lr_schedule == 'cosine': scheduler = CosineRestartAnnealingLR(optimizer, float(max_steps), period_steps, step_steps, eta_min=config.optim.min_lr, use_warmup=use_warmup, warmup_steps=warmup_steps, warmup_startlr=warmup_startlr, warmup_targetlr=warmup_targetlr, use_restart=config.optim.cosine.use_restart) # scheduler = CosineAnnealingLR(optimizer, config.train_params.epochs, config.optim.min_lr) elif config.optim.lr_schedule == 'poly': raise NotImplementedError else: raise NotImplementedError return scheduler