Python torch.optim.lr_scheduler.ReduceLROnPlateau() Examples
The following are 30
code examples of torch.optim.lr_scheduler.ReduceLROnPlateau().
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: 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 #2
Source File: train_rels.py From VCTree-Scene-Graph-Generation with MIT License | 6 votes |
def get_optim(lr): # Lower the learning rate on the VGG fully connected layers by 1/10th. It's a hack, but it helps # stabilize the models. fc_params = [p for n,p in detector.named_parameters() if n.startswith('roi_fmap') and p.requires_grad] non_fc_params = [p for n,p in detector.named_parameters() if not n.startswith('roi_fmap') and p.requires_grad] params = [{'params': fc_params, 'lr': lr / 10.0}, {'params': non_fc_params}] # params = [p for n,p in detector.named_parameters() if p.requires_grad] if conf.adam: optimizer = optim.Adadelta(params, weight_decay=conf.l2, lr=lr, eps=1e-3) else: optimizer = optim.SGD(params, weight_decay=conf.l2, lr=lr, momentum=0.9) #scheduler = StepLR(optimizer, step_size=1, gamma=0.5) scheduler = ReduceLROnPlateau(optimizer, 'max', patience=2, factor=0.5, verbose=True, threshold=0.0001, threshold_mode='abs', cooldown=1) return optimizer, scheduler
Example #3
Source File: schedulers.py From incremental_learning.pytorch with MIT License | 6 votes |
def step_ReduceLROnPlateau(self, metrics, epoch=None): if epoch is None: epoch = self.last_epoch + 1 self.last_epoch = epoch if epoch != 0 else 1 # ReduceLROnPlateau is called at the end of epoch, whereas others are called at beginning if self.last_epoch <= self.total_epoch: warmup_lr = [ base_lr * ((self.multiplier - 1.) * self.last_epoch / self.total_epoch + 1.) for base_lr in self.base_lrs ] for param_group, lr in zip(self.optimizer.param_groups, warmup_lr): param_group['lr'] = lr else: if epoch is None: self.after_scheduler.step(metrics, None) else: self.after_scheduler.step(metrics, epoch - self.total_epoch)
Example #4
Source File: model.py From instance-segmentation-pytorch with GNU General Public License v3.0 | 6 votes |
def __define_optimizer(self, learning_rate, weight_decay, lr_drop_factor, lr_drop_patience, optimizer='Adam'): assert optimizer in ['RMSprop', 'Adam', 'Adadelta', 'SGD'] parameters = ifilter(lambda p: p.requires_grad, self.model.parameters()) if optimizer == 'RMSprop': self.optimizer = optim.RMSprop( parameters, lr=learning_rate, weight_decay=weight_decay) elif optimizer == 'Adadelta': self.optimizer = optim.Adadelta( parameters, lr=learning_rate, weight_decay=weight_decay) elif optimizer == 'Adam': self.optimizer = optim.Adam( parameters, lr=learning_rate, weight_decay=weight_decay) elif optimizer == 'SGD': self.optimizer = optim.SGD( parameters, lr=learning_rate, momentum=0.9, weight_decay=weight_decay) self.lr_scheduler = ReduceLROnPlateau( self.optimizer, mode='min', factor=lr_drop_factor, patience=lr_drop_patience, verbose=True)
Example #5
Source File: model.py From RL-based-Graph2Seq-for-NQG with Apache License 2.0 | 6 votes |
def _init_optimizer(self): parameters = [p for p in self.network.parameters() if p.requires_grad] if self.config['use_bert'] and self.config.get('finetune_bert', None): parameters += [p for p in self.config['bert_model'].parameters() if p.requires_grad] if self.config['optimizer'] == 'sgd': self.optimizer = optim.SGD(parameters, self.config['learning_rate'], momentum=self.config['momentum'], weight_decay=self.config['weight_decay']) elif self.config['optimizer'] == 'adam': self.optimizer = optim.Adam(parameters, lr=self.config['learning_rate']) elif self.config['optimizer'] == 'adamax': self.optimizer = optim.Adamax(parameters, lr=self.config['learning_rate']) else: raise RuntimeError('Unsupported optimizer: %s' % self.config['optimizer']) self.scheduler = ReduceLROnPlateau(self.optimizer, mode='max', factor=0.5, \ patience=2, verbose=True)
Example #6
Source File: test_torch.py From ray with Apache License 2.0 | 6 votes |
def test_scheduler_validate(ray_start_2_cpus): # noqa: F811 from torch.optim.lr_scheduler import ReduceLROnPlateau trainer = TorchTrainer( model_creator=model_creator, data_creator=data_creator, optimizer_creator=optimizer_creator, loss_creator=lambda config: nn.MSELoss(), scheduler_creator=lambda optimizer, cfg: ReduceLROnPlateau(optimizer), scheduler_step_freq="manual", training_operator_cls=_TestingOperator) trainer.update_scheduler(0.5) trainer.update_scheduler(0.5) assert all( trainer.apply_all_operators( lambda op: op.schedulers[0].last_epoch == 2)) trainer.shutdown()
Example #7
Source File: svgd.py From cnn-surrogate with MIT License | 6 votes |
def _optimizers_schedulers(self, lr, lr_noise): """Initialize Adam optimizers and schedulers (ReduceLROnPlateau) Args: lr (float): learning rate for NN parameters `w` lr_noise (float): learning rate for noise precision `log_beta` """ optimizers = [] schedulers = [] for i in range(self.n_samples): parameters = [{'params': [self.bayes_nn[i].log_beta], 'lr': lr_noise}, {'params': self.bayes_nn[i].features.parameters()}] optimizer_i = torch.optim.Adam(parameters, lr=lr) optimizers.append(optimizer_i) schedulers.append(ReduceLROnPlateau(optimizer_i, mode='min', factor=0.1, patience=10, verbose=True)) return optimizers, schedulers
Example #8
Source File: train_rels.py From neural-motifs with MIT License | 6 votes |
def get_optim(lr): # Lower the learning rate on the VGG fully connected layers by 1/10th. It's a hack, but it helps # stabilize the models. fc_params = [p for n,p in detector.named_parameters() if n.startswith('roi_fmap') and p.requires_grad] non_fc_params = [p for n,p in detector.named_parameters() if not n.startswith('roi_fmap') and p.requires_grad] params = [{'params': fc_params, 'lr': lr / 10.0}, {'params': non_fc_params}] # params = [p for n,p in detector.named_parameters() if p.requires_grad] if conf.adam: optimizer = optim.Adam(params, weight_decay=conf.l2, lr=lr, eps=1e-3) else: optimizer = optim.SGD(params, weight_decay=conf.l2, lr=lr, momentum=0.9) scheduler = ReduceLROnPlateau(optimizer, 'max', patience=3, factor=0.1, verbose=True, threshold=0.0001, threshold_mode='abs', cooldown=1) return optimizer, scheduler
Example #9
Source File: lr_schedulers.py From argus with MIT License | 6 votes |
def __init__(self, monitor='val_loss', better='auto', factor=0.1, patience=10, verbose=False, threshold=1e-4, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-8): self.monitor = monitor self.patience = patience self.better, self.better_comp, self.best_value = init_better( better, monitor) super().__init__( lambda opt: _scheduler.ReduceLROnPlateau(opt, mode=self.better, factor=factor, patience=patience, verbose=verbose, threshold=threshold, threshold_mode=threshold_mode, cooldown=cooldown, min_lr=min_lr, eps=eps), step_on_iteration=False )
Example #10
Source File: lr_scheduler.py From skorch with BSD 3-Clause "New" or "Revised" License | 6 votes |
def on_epoch_end(self, net, **kwargs): if not self.step_every == 'epoch': return epoch = len(net.history) if isinstance(self.lr_scheduler_, ReduceLROnPlateau): if callable(self.monitor): score = self.monitor(net) else: if self.lr_scheduler_.mode == 'max': score = -np.inf elif self.lr_scheduler_.mode == 'min': score = np.inf else: score = net.history[-1, self.monitor] self.lr_scheduler_.step(score, epoch) # ReduceLROnPlateau does not expose the current lr so it can't be recorded else: if self.event_name is not None and hasattr( self.lr_scheduler_, "get_last_lr"): net.history.record(self.event_name, self.lr_scheduler_.get_last_lr()[0]) self.lr_scheduler_.step(epoch)
Example #11
Source File: scheduler.py From PVN3D with MIT License | 5 votes |
def step(self, epoch=None, metrics=None): print(type(self.after_scheduler)) if type(self.after_scheduler) != ReduceLROnPlateau: if self.finished and self.after_scheduler: if epoch is None: self.after_scheduler.step(None) else: self.after_scheduler.step(epoch - self.total_epoch) else: return super(GradualWarmupScheduler, self).step(epoch) else: self.step_ReduceLROnPlateau(metrics, epoch)
Example #12
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 #13
Source File: motion_cnn.py From two-stream-action-recognition with MIT License | 5 votes |
def build_model(self): print ('==> Build model and setup loss and optimizer') #build model self.model = resnet101(pretrained= True, channel=self.channel).cuda() #print self.model #Loss function and optimizer self.criterion = nn.CrossEntropyLoss().cuda() self.optimizer = torch.optim.SGD(self.model.parameters(), self.lr, momentum=0.9) self.scheduler = ReduceLROnPlateau(self.optimizer, 'min', patience=1,verbose=True)
Example #14
Source File: spatial_cnn.py From two-stream-action-recognition with MIT License | 5 votes |
def build_model(self): print ('==> Build model and setup loss and optimizer') #build model self.model = resnet101(pretrained= True, channel=3).cuda() #Loss function and optimizer self.criterion = nn.CrossEntropyLoss().cuda() self.optimizer = torch.optim.SGD(self.model.parameters(), self.lr, momentum=0.9) self.scheduler = ReduceLROnPlateau(self.optimizer, 'min', patience=1,verbose=True)
Example #15
Source File: scheduler.py From PVN3D with MIT License | 5 votes |
def step_ReduceLROnPlateau(self, metrics, epoch=None): if epoch is None: epoch = self.last_epoch + 1 self.last_epoch = epoch if epoch != 0 else 1 # ReduceLROnPlateau is called at the end of epoch, whereas others are called at beginning if self.last_epoch <= self.total_epoch: warmup_lr = [base_lr * ((self.multiplier - 1.) * self.last_epoch / self.total_epoch + 1.) for base_lr in self.base_lrs] print("warmup_lr: ", self.last_epoch, warmup_lr) for param_group, lr in zip(self.optimizer.param_groups, warmup_lr): param_group['lr'] = lr else: if epoch is None: self.after_scheduler.step(metrics, None) else: self.after_scheduler.step(metrics, epoch - self.total_epoch)
Example #16
Source File: UNetExperiment.py From basic_unet_example with Apache License 2.0 | 5 votes |
def setup(self): pkl_dir = self.config.split_dir with open(os.path.join(pkl_dir, "splits.pkl"), 'rb') as f: splits = pickle.load(f) tr_keys = splits[self.config.fold]['train'] val_keys = splits[self.config.fold]['val'] test_keys = splits[self.config.fold]['test'] self.device = torch.device(self.config.device if torch.cuda.is_available() else "cpu") self.train_data_loader = NumpyDataSet(self.config.data_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=tr_keys) self.val_data_loader = NumpyDataSet(self.config.data_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=val_keys, mode="val", do_reshuffle=False) self.test_data_loader = NumpyDataSet(self.config.data_test_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=test_keys, mode="test", do_reshuffle=False) self.model = UNet(num_classes=self.config.num_classes, in_channels=self.config.in_channels) self.model.to(self.device) # We use a combination of DICE-loss and CE-Loss in this example. # This proved good in the medical segmentation decathlon. self.dice_loss = SoftDiceLoss(batch_dice=True) # Softmax for DICE Loss! self.ce_loss = torch.nn.CrossEntropyLoss() # No softmax for CE Loss -> is implemented in torch! self.optimizer = optim.Adam(self.model.parameters(), lr=self.config.learning_rate) self.scheduler = ReduceLROnPlateau(self.optimizer, 'min') # If directory for checkpoint is provided, we load it. if self.config.do_load_checkpoint: if self.config.checkpoint_dir == '': print('checkpoint_dir is empty, please provide directory to load checkpoint.') else: self.load_checkpoint(name=self.config.checkpoint_dir, save_types=("model")) self.save_checkpoint(name="checkpoint_start") self.elog.print('Experiment set up.')
Example #17
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 #18
Source File: base_models.py From FCSR-GAN with Apache License 2.0 | 5 votes |
def _get_scheduler(self, 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) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #19
Source File: network_trainer.py From nnUNet with Apache License 2.0 | 5 votes |
def save_checkpoint(self, fname, save_optimizer=True): start_time = time() state_dict = self.network.state_dict() for key in state_dict.keys(): state_dict[key] = state_dict[key].cpu() lr_sched_state_dct = None if self.lr_scheduler is not None and hasattr(self.lr_scheduler, 'state_dict'): # not isinstance(self.lr_scheduler, lr_scheduler.ReduceLROnPlateau): lr_sched_state_dct = self.lr_scheduler.state_dict() # WTF is this!? # for key in lr_sched_state_dct.keys(): # lr_sched_state_dct[key] = lr_sched_state_dct[key] if save_optimizer: optimizer_state_dict = self.optimizer.state_dict() else: optimizer_state_dict = None self.print_to_log_file("saving checkpoint...") torch.save({ 'epoch': self.epoch + 1, 'state_dict': state_dict, 'optimizer_state_dict': optimizer_state_dict, 'lr_scheduler_state_dict': lr_sched_state_dct, 'plot_stuff': (self.all_tr_losses, self.all_val_losses, self.all_val_losses_tr_mode, self.all_val_eval_metrics)}, fname) self.print_to_log_file("done, saving took %.2f seconds" % (time() - start_time))
Example #20
Source File: lr_schedulers.py From srgan with MIT License | 5 votes |
def is_pre_epoch_scheduler(scheduler): return (scheduler is not None and not isinstance(scheduler, lr_scheduler.ReduceLROnPlateau))
Example #21
Source File: UNetExperiment3D.py From basic_unet_example with Apache License 2.0 | 5 votes |
def setup(self): pkl_dir = self.config.split_dir with open(os.path.join(pkl_dir, "splits.pkl"), 'rb') as f: splits = pickle.load(f) tr_keys = splits[self.config.fold]['train'] val_keys = splits[self.config.fold]['val'] test_keys = splits[self.config.fold]['test'] self.device = torch.device(self.config.device if torch.cuda.is_available() else "cpu") self.train_data_loader = NumpyDataSet(self.config.data_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=tr_keys) self.val_data_loader = NumpyDataSet(self.config.data_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=val_keys, mode="val", do_reshuffle=False) self.test_data_loader = NumpyDataSet(self.config.data_test_dir, target_size=self.config.patch_size, batch_size=self.config.batch_size, keys=test_keys, mode="test", do_reshuffle=False) self.model = UNet3D(num_classes=3, in_channels=1) self.model.to(self.device) # We use a combination of DICE-loss and CE-Loss in this example. # This proved good in the medical segmentation decathlon. self.loss = DC_and_CE_loss({'batch_dice': True, 'smooth': 1e-5, 'smooth_in_nom': True, 'do_bg': False, 'rebalance_weights': None, 'background_weight': 1}, OrderedDict()) self.optimizer = optim.Adam(self.model.parameters(), lr=self.config.learning_rate) self.scheduler = ReduceLROnPlateau(self.optimizer, 'min') # If directory for checkpoint is provided, we load it. if self.config.do_load_checkpoint: if self.config.checkpoint_dir == '': print('checkpoint_dir is empty, please provide directory to load checkpoint.') else: self.load_checkpoint(name=self.config.checkpoint_dir, save_types=("model")) self.save_checkpoint(name="checkpoint_start") self.elog.print('Experiment set up.')
Example #22
Source File: scheduler.py From pytorch-gradual-warmup-lr with MIT License | 5 votes |
def step(self, epoch=None, metrics=None): if type(self.after_scheduler) != ReduceLROnPlateau: if self.finished and self.after_scheduler: if epoch is None: self.after_scheduler.step(None) else: self.after_scheduler.step(epoch - self.total_epoch) self._last_lr = self.after_scheduler.get_last_lr() else: return super(GradualWarmupScheduler, self).step(epoch) else: self.step_ReduceLROnPlateau(metrics, epoch)
Example #23
Source File: scheduler.py From pytorch-gradual-warmup-lr with MIT License | 5 votes |
def step_ReduceLROnPlateau(self, metrics, epoch=None): if epoch is None: epoch = self.last_epoch + 1 self.last_epoch = epoch if epoch != 0 else 1 # ReduceLROnPlateau is called at the end of epoch, whereas others are called at beginning if self.last_epoch <= self.total_epoch: warmup_lr = [base_lr * ((self.multiplier - 1.) * self.last_epoch / self.total_epoch + 1.) for base_lr in self.base_lrs] for param_group, lr in zip(self.optimizer.param_groups, warmup_lr): param_group['lr'] = lr else: if epoch is None: self.after_scheduler.step(metrics, None) else: self.after_scheduler.step(metrics, epoch - self.total_epoch)
Example #24
Source File: param_scheduler.py From LaSO with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, optimizer, metric_name=None, output_transform=None, mode='min', factor=0.1, patience=10, threshold=1e-4, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-8, save_history=False, **kwds): assert (metric_name is None and output_transform is not None) or \ (metric_name is not None and output_transform is None), \ "One of the parameters: `metric_name`, `output_transform` should be used but not both. " from torch.optim.lr_scheduler import ReduceLROnPlateau as pytorch_ROP self._lr_scheduler = pytorch_ROP( optimizer=optimizer, mode=mode, factor=factor, patience=patience, verbose=False, threshold=threshold, threshold_mode=threshold_mode, cooldown=cooldown, min_lr=min_lr, eps=eps ) self.metric_name = metric_name self.output_transform = output_transform super(ReduceLROnPlateau, self).__init__( optimizer=optimizer, param_name='lr', save_history=save_history )
Example #25
Source File: TRADE.py From tatk with Apache License 2.0 | 5 votes |
def __init__(self, hidden_size, lang, path, task, lr, dropout, slots, gating_dict, nb_train_vocab=0, mode='cn'): super(TRADE, self).__init__() self.mode = mode self.name = "TRADE" self.task = task self.hidden_size = hidden_size self.lang = lang[0] self.mem_lang = lang[1] self.lr = lr self.dropout = dropout self.slots = slots[0] self.slot_temp = slots[2] self.gating_dict = gating_dict self.nb_gate = len(gating_dict) self.cross_entorpy = nn.CrossEntropyLoss() self.encoder = EncoderRNN(self.lang.n_words, hidden_size, self.dropout, mode=mode) self.decoder = Generator(self.lang, self.encoder.embedding, self.lang.n_words, hidden_size, self.dropout, self.slots, self.nb_gate) if path: if USE_CUDA: print("MODEL {} LOADED".format(str(path))) trained_encoder = torch.load(str(path)+'/enc.th') trained_decoder = torch.load(str(path)+'/dec.th') else: print("MODEL {} LOADED".format(str(path))) trained_encoder = torch.load(str(path)+'/enc.th',lambda storage, loc: storage) trained_decoder = torch.load(str(path)+'/dec.th',lambda storage, loc: storage) self.encoder.load_state_dict(trained_encoder.state_dict()) self.decoder.load_state_dict(trained_decoder.state_dict()) # Initialize optimizers and criterion self.optimizer = optim.Adam(self.parameters(), lr=lr) self.scheduler = lr_scheduler.ReduceLROnPlateau(self.optimizer, mode='max', factor=0.5, patience=1, min_lr=0.0001, verbose=True) self.reset() if USE_CUDA: self.encoder.cuda() self.decoder.cuda()
Example #26
Source File: networks.py From MADAN 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) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #27
Source File: cycle_util.py From landmark-detection 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) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #28
Source File: model_utils.py From ganimation_replicate 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) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler
Example #29
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 #30
Source File: models.py From GANimation with GNU General Public License v3.0 | 5 votes |
def _get_scheduler(self, 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) else: return NotImplementedError('learning rate policy [%s] is not implemented', opt.lr_policy) return scheduler