Python torch.optim.Adadelta() Examples
The following are 30
code examples of torch.optim.Adadelta().
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
, or try the search function
.
Example #1
Source File: make_optimizer.py From MAMS-for-ABSA with Apache License 2.0 | 6 votes |
def make_optimizer(config, model): mode = config['mode'] config = config['aspect_' + mode + '_model'][config['aspect_' + mode + '_model']['type']] lr = config['learning_rate'] weight_decay = config['weight_decay'] opt = { 'sgd': optim.SGD, 'adadelta': optim.Adadelta, 'adam': optim.Adam, 'adamax': optim.Adamax, 'adagrad': optim.Adagrad, 'asgd': optim.ASGD, 'rmsprop': optim.RMSprop, 'adabound': adabound.AdaBound } if 'momentum' in config: optimizer = opt[config['optimizer']](model.parameters(), lr=lr, weight_decay=weight_decay, momentum=config['momentum']) else: optimizer = opt[config['optimizer']](model.parameters(), lr=lr, weight_decay=weight_decay) return optimizer
Example #2
Source File: optimizer.py From mpi_learn with GNU General Public License v3.0 | 6 votes |
def build_torch(self, model): import torch lookup = { 'sgd': torch.optim.SGD, 'adadelta': torch.optim.Adadelta, 'rmsprop': torch.optim.RMSprop, 'adam': torch.optim.Adam } if self.name not in lookup: logging.warning("No optimizer '{}' found, using SGD instead".format(self.name)) self.name = 'sgd' opt = lookup[self.name](model.parameters(), **self.config) if self.horovod_wrapper: import horovod.torch as hvd opt = hvd.DistributedOptimizer(opt, named_parameters=model.named_parameters()) return opt
Example #3
Source File: optimizer.py From mpi_learn with GNU General Public License v3.0 | 6 votes |
def apply_update(self, weights, gradient): """Update the running averages of gradients and weight updates, and compute the Adadelta update for this step.""" if self.running_g2 is None: self.running_g2 = [ np.zeros_like(g) for g in gradient ] if self.running_dx2 is None: self.running_dx2 = [ np.zeros_like(g) for g in gradient ] self.running_g2 = self.running_average_square( self.running_g2, gradient ) new_weights = [] updates = [] for w, g, g2, dx2 in zip(weights, gradient, self.running_g2, self.running_dx2): update = np.multiply( np.divide( self.sqrt_plus_epsilon(dx2), self.sqrt_plus_epsilon(g2) ), g ) new_weights.append( np.subtract( w, update ) ) updates.append(update) self.running_dx2 = self.running_average_square( self.running_dx2, updates ) return new_weights
Example #4
Source File: Optim.py From DC-NeuralConversation with MIT License | 6 votes |
def set_parameters(self, params): self.params = [p for p in params if p.requires_grad] if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #5
Source File: optim.py From ASER with MIT License | 6 votes |
def set_parameters(self, params): """ ? """ self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.learning_rate) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.learning_rate) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.learning_rate) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=self.adam_eps) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #6
Source File: main.py From Beyond-Binary-Supervision-CVPR19 with MIT License | 6 votes |
def create_optimizer(model, new_lr): # setup optimizer if args.optimizer == 'sgd': optimizer = optim.SGD(model.parameters(), lr=new_lr, momentum=0.9, weight_decay= 5e-4) elif args.optimizer == 'adam': optimizer = optim.Adam(model.parameters(), lr = args.lr, weight_decay=5e-4) elif args.optimizer == 'adadelta': optimizer = optim.Adadelta(model.parameters(), lr = args.lr, rho = 0.95, eps = 1e-06) return optimizer
Example #7
Source File: optimizers.py From PreSumm with MIT License | 6 votes |
def set_parameters(self, params): """ ? """ self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.learning_rate) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.learning_rate) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.learning_rate) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #8
Source File: Config.py From OpenNRE-PyTorch with MIT License | 6 votes |
def set_train_model(self, model): print("Initializing training model...") self.model = model self.trainModel = self.model(config = self) if self.pretrain_model != None: self.trainModel.load_state_dict(torch.load(self.pretrain_model)) self.trainModel.cuda() if self.optimizer != None: pass elif self.opt_method == "Adagrad" or self.opt_method == "adagrad": self.optimizer = optim.Adagrad(self.trainModel.parameters(), lr = self.learning_rate, lr_decay = self.lr_decay, weight_decay = self.weight_decay) elif self.opt_method == "Adadelta" or self.opt_method == "adadelta": self.optimizer = optim.Adadelta(self.trainModel.parameters(), lr = self.learning_rate, weight_decay = self.weight_decay) elif self.opt_method == "Adam" or self.opt_method == "adam": self.optimizer = optim.Adam(self.trainModel.parameters(), lr = self.learning_rate, weight_decay = self.weight_decay) else: self.optimizer = optim.SGD(self.trainModel.parameters(), lr = self.learning_rate, weight_decay = self.weight_decay) print("Finish initializing")
Example #9
Source File: Optim.py From reversible-rnn with MIT License | 6 votes |
def set_parameters(self, params): self.params = [p for p in params if p.requires_grad] if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #10
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 #11
Source File: Optim.py From pytorch-nlp with MIT License | 6 votes |
def set_parameters(self, params): self.params = [p for p in params if p.requires_grad] if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #12
Source File: Config.py From NeuralTripleTranslation with Apache License 2.0 | 6 votes |
def set_model(self, model): self.model = model self.trainModel = self.model(config=self) if self.use_cuda: self.trainModel = self.trainModel.cuda() if self.optimizer is not None: pass elif self.opt_method == "Adagrad" or self.opt_method == "adagrad": self.optimizer = optim.Adagrad(self.trainModel.parameters(), lr=self.alpha,lr_decay=self.lr_decay,weight_decay=self.weight_decay) elif self.opt_method == "Adadelta" or self.opt_method == "adadelta": self.optimizer = optim.Adadelta(self.trainModel.parameters(), lr=self.alpha) elif self.opt_method == "Adam" or self.opt_method == "adam": self.optimizer = optim.Adam(self.trainModel.parameters(), lr=self.alpha) else: self.optimizer = optim.SGD(self.trainModel.parameters(), lr=self.alpha)
Example #13
Source File: model.py From deep-forecast-pytorch with GNU General Public License v3.0 | 6 votes |
def __define_optimizer(self, learning_rate, weight_decay, lr_drop_factor, lr_drop_patience, rnn_model_num, optimizer='Adam'): assert optimizer in ['RMSprop', 'Adam', 'Adadelta', 'SGD'] for rnn_model_num_counter in range(1, self.moving_horizon + 1): if rnn_model_num_counter == rnn_model_num: for param in self.model.rnn_models[rnn_model_num_counter - 1].parameters(): param.requires_grad = True else: for param in self.model.rnn_models[rnn_model_num_counter - 1].parameters(): param.requires_grad = False parameters = ifilter(lambda p: p.requires_grad, self.model.rnn_models[rnn_model_num - 1].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 #14
Source File: optimizer.py From XenonPy with BSD 3-Clause "New" or "Revised" License | 6 votes |
def __init__(self, *, lr=1.0, rho=0.9, eps=1e-06, weight_decay=0): """Implements Adadelta algorithm. It has been proposed in `ADADELTA: An Adaptive Learning Rate Method`__. Arguments: rho (float, optional): coefficient used for computing a running average of squared gradients (default: 0.9) eps (float, optional): term added to the denominator to improve numerical stability (default: 1e-6) lr (float, optional): coefficient that scale delta before it is applied to the parameters (default: 1.0) weight_decay (float, optional): weight decay (L2 penalty) (default: 0) __ https://arxiv.org/abs/1212.5701 """ super().__init__(optim.Adadelta, lr=lr, rho=rho, eps=eps, weight_decay=weight_decay)
Example #15
Source File: optimizer.py From SegmenTron with Apache License 2.0 | 6 votes |
def get_optimizer(model): parameters = _get_paramters(model) opt_lower = cfg.SOLVER.OPTIMIZER.lower() if opt_lower == 'sgd': optimizer = optim.SGD( parameters, lr=cfg.SOLVER.LR, momentum=cfg.SOLVER.MOMENTUM, weight_decay=cfg.SOLVER.WEIGHT_DECAY) elif opt_lower == 'adam': optimizer = optim.Adam( parameters, lr=cfg.SOLVER.LR, eps=cfg.SOLVER.EPSILON, weight_decay=cfg.SOLVER.WEIGHT_DECAY) elif opt_lower == 'adadelta': optimizer = optim.Adadelta( parameters, lr=cfg.SOLVER.LR, eps=cfg.SOLVER.EPSILON, weight_decay=cfg.SOLVER.WEIGHT_DECAY) elif opt_lower == 'rmsprop': optimizer = optim.RMSprop( parameters, lr=cfg.SOLVER.LR, alpha=0.9, eps=cfg.SOLVER.EPSILON, momentum=cfg.SOLVER.MOMENTUM, weight_decay=cfg.SOLVER.WEIGHT_DECAY) else: raise ValueError("Expected optimizer method in [sgd, adam, adadelta, rmsprop], but received " "{}".format(opt_lower)) return optimizer
Example #16
Source File: optimization.py From SeaRNN-open with MIT License | 6 votes |
def create_optimizer(parameters, opt): lr = opt.learning_rate # default learning rates: # sgd - 0.5, adagrad - 0.01, adadelta - 1, adam - 0.001, adamax - 0.002, asgd - 0.01, rmsprop - 0.01, rprop - 0.01 optim_method = opt.optim_method.casefold() if optim_method == 'sgd': optimizer = optim.SGD(parameters, lr=lr if lr else 0.5, weight_decay=opt.weight_decay) elif optim_method == 'adagrad': optimizer = optim.Adagrad(parameters, lr=lr if lr else 0.01, weight_decay=opt.weight_decay) elif optim_method == 'adadelta': optimizer = optim.Adadelta(parameters, lr=lr if lr else 1, weight_decay=opt.weight_decay) elif optim_method == 'adam': optimizer = optim.Adam(parameters, lr=lr if lr else 0.001, weight_decay=opt.weight_decay) elif optim_method == 'adamax': optimizer = optim.Adamax(parameters, lr=lr if lr else 0.002, weight_decay=opt.weight_decay) elif optim_method == 'asgd': optimizer = optim.ASGD(parameters, lr=lr if lr else 0.01, t0=5000, weight_decay=opt.weight_decay) elif optim_method == 'rmsprop': optimizer = optim.RMSprop(parameters, lr=lr if lr else 0.01, weight_decay=opt.weight_decay) elif optim_method == 'rprop': optimizer = optim.Rprop(parameters, lr=lr if lr else 0.01) else: raise RuntimeError("Invalid optim method: " + opt.optim_method) return optimizer
Example #17
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 #18
Source File: RHINE.py From OpenHINE with MIT License | 6 votes |
def set_model(self, model): self.model = model self.trainModel = self.model(config=self) self.trainModel.cuda() if self.optimizer is not None: pass elif self.opt_method == "Adagrad" or self.opt_method == "adagrad": self.optimizer = optim.Adagrad(self.trainModel.parameters(), lr=self.alpha, lr_decay=self.lr_decay, weight_decay=self.weight_decay) elif self.opt_method == "Adadelta" or self.opt_method == "adadelta": self.optimizer = optim.Adadelta( self.trainModel.parameters(), lr=self.alpha) elif self.opt_method == "Adam" or self.opt_method == "adam": self.optimizer = optim.Adam( self.trainModel.parameters(), lr=self.alpha) else: self.optimizer = optim.SGD( self.trainModel.parameters(), lr=self.alpha)
Example #19
Source File: optimizers.py From BiSET with MIT License | 5 votes |
def set_parameters(self, params): """ ? """ self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.learning_rate) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.learning_rate) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.learning_rate) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=1e-9) elif self.method == 'sparseadam': self.optimizer = MultipleOptimizer( [optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=1e-8), optim.SparseAdam(self.sparse_params, lr=self.learning_rate, betas=self.betas, eps=1e-8)]) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #20
Source File: Optim.py From QG-Net with MIT License | 5 votes |
def set_parameters(self, params): self.params = [p for p in params if p.requires_grad] if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method) # We use the default parameters for Adam that are suggested by # the original paper https://arxiv.org/pdf/1412.6980.pdf # These values are also used by other established implementations, # e.g. https://www.tensorflow.org/api_docs/python/tf/train/AdamOptimizer # https://keras.io/optimizers/ # Recently there are slightly different values used in the paper # "Attention is all you need" # https://arxiv.org/pdf/1706.03762.pdf, particularly the value beta2=0.98 # was used there however, beta2=0.999 is still arguably the more # established value, so we use that here as well
Example #21
Source File: optimizer.py From stog with MIT License | 5 votes |
def set_parameters(self, params): """ ? """ self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.learning_rate) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.learning_rate) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.learning_rate) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=1e-8, weight_decay=3e-9) elif self.method == 'sparseadam': self.optimizer = MultipleOptimizer( [optim.Adam(self.params, lr=self.learning_rate, betas=self.betas, eps=1e-8), optim.SparseAdam(self.sparse_params, lr=self.learning_rate, betas=self.betas, eps=1e-8)]) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #22
Source File: Optim.py From quantized_distillation with MIT License | 5 votes |
def set_parameters(self, params): self.params = [p for p in params if p.requires_grad] if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #23
Source File: agent_task.py From DIAG-NRE with MIT License | 5 votes |
def get_optimizer(self, parameters): opti_type = self.config['optimizer_type'] p_lr = self.config['policy_lr'] p_wd = self.config['policy_weight_decay'] print('Choose {} optimizer (lr={}, weight_decay={})'.format(opti_type, p_lr, p_wd)) if opti_type == 'SGD': optimizer = optim.SGD(parameters, lr=p_lr, weight_decay=p_wd) elif opti_type == 'Adagrad': optimizer = optim.Adagrad(parameters, lr=p_lr, weight_decay=p_wd) elif opti_type == 'Adadelta': optimizer = optim.Adadelta(parameters, lr=p_lr, weight_decay=p_wd) elif opti_type == 'Adam': optimizer = optim.Adam(parameters, lr=p_lr, weight_decay=p_wd) else: raise ValueError('Unsupported optimizer type:', opti_type) return optimizer
Example #24
Source File: helper.py From transferable_sent2vec with MIT License | 5 votes |
def get_optimizer(s): """ Parse optimizer parameters. Input should be of the form: - "sgd,lr=0.01" - "adagrad,lr=0.1,lr_decay=0.05" """ if "," in s: method = s[:s.find(',')] optim_params = {} for x in s[s.find(',') + 1:].split(','): split = x.split('=') assert len(split) == 2 assert re.match("^[+-]?(\d+(\.\d*)?|\.\d+)$", split[1]) is not None optim_params[split[0]] = float(split[1]) else: method = s optim_params = {} if method == 'adadelta': optim_fn = optim.Adadelta elif method == 'adagrad': optim_fn = optim.Adagrad elif method == 'adam': optim_fn = optim.Adam elif method == 'rmsprop': optim_fn = optim.RMSprop elif method == 'sgd': optim_fn = optim.SGD assert 'lr' in optim_params else: raise Exception('Unknown optimization method: "%s"' % method) # check that we give good parameters to the optimizer expected_args = list(inspect.signature(optim_fn.__init__).parameters.keys()) assert expected_args[:2] == ['self', 'params'] if not all(k in expected_args[2:] for k in optim_params.keys()): raise Exception('Unexpected parameters: expected "%s", got "%s"' % ( str(expected_args[2:]), str(optim_params.keys()))) return optim_fn, optim_params
Example #25
Source File: helper.py From transferable_sent2vec with MIT License | 5 votes |
def get_optimizer(s): """ Parse optimizer parameters. Input should be of the form: - "sgd,lr=0.01" - "adagrad,lr=0.1,lr_decay=0.05" """ if "," in s: method = s[:s.find(',')] optim_params = {} for x in s[s.find(',') + 1:].split(','): split = x.split('=') assert len(split) == 2 assert re.match("^[+-]?(\d+(\.\d*)?|\.\d+)$", split[1]) is not None optim_params[split[0]] = float(split[1]) else: method = s optim_params = {} if method == 'adadelta': optim_fn = optim.Adadelta elif method == 'adagrad': optim_fn = optim.Adagrad elif method == 'adam': optim_fn = optim.Adam elif method == 'rmsprop': optim_fn = optim.RMSprop elif method == 'sgd': optim_fn = optim.SGD assert 'lr' in optim_params else: raise Exception('Unknown optimization method: "%s"' % method) # check that we give good parameters to the optimizer expected_args = list(inspect.signature(optim_fn.__init__).parameters.keys()) assert expected_args[:2] == ['self', 'params'] if not all(k in expected_args[2:] for k in optim_params.keys()): raise Exception('Unexpected parameters: expected "%s", got "%s"' % ( str(expected_args[2:]), str(optim_params.keys()))) return optim_fn, optim_params
Example #26
Source File: helper.py From transferable_sent2vec with MIT License | 5 votes |
def get_optimizer(s): """ Parse optimizer parameters. Input should be of the form: - "sgd,lr=0.01" - "adagrad,lr=0.1,lr_decay=0.05" """ if "," in s: method = s[:s.find(',')] optim_params = {} for x in s[s.find(',') + 1:].split(','): split = x.split('=') assert len(split) == 2 assert re.match("^[+-]?(\d+(\.\d*)?|\.\d+)$", split[1]) is not None optim_params[split[0]] = float(split[1]) else: method = s optim_params = {} if method == 'adadelta': optim_fn = optim.Adadelta elif method == 'adagrad': optim_fn = optim.Adagrad elif method == 'adam': optim_fn = optim.Adam elif method == 'rmsprop': optim_fn = optim.RMSprop elif method == 'sgd': optim_fn = optim.SGD assert 'lr' in optim_params else: raise Exception('Unknown optimization method: "%s"' % method) # check that we give good parameters to the optimizer expected_args = list(inspect.signature(optim_fn.__init__).parameters.keys()) assert expected_args[:2] == ['self', 'params'] if not all(k in expected_args[2:] for k in optim_params.keys()): raise Exception('Unexpected parameters: expected "%s", got "%s"' % ( str(expected_args[2:]), str(optim_params.keys()))) return optim_fn, optim_params
Example #27
Source File: Optim.py From var-attn with MIT License | 5 votes |
def set_parameters(self, params): self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) print("Sparse parameter {}".format(k)) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=self.eps) elif self.method == 'sparseadam': self.optimizer = MultipleOptimizer( [optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-8), optim.SparseAdam(self.sparse_params, lr=self.lr, betas=self.betas, eps=1e-8)]) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #28
Source File: train.py From efficientdensenet_crnn with MIT License | 5 votes |
def trainBatch(net, criterion, optimizer,flage=False): n_correct = 0 train_distance=0 data = train_iter.next() cpu_images, cpu_texts = data##decode utf-8 to unicode if ifUnicode: cpu_texts = [ clean_txt(tx.decode('utf-8')) for tx in cpu_texts] batch_size = cpu_images.size(0) utils.loadData(image, cpu_images) t, l = converter.encode(cpu_texts) utils.loadData(text, t) utils.loadData(length, l) preds = crnn(image) preds_size = Variable(torch.IntTensor([preds.size(0)] * batch_size)) cost = criterion(preds, text, preds_size, length) / batch_size crnn.zero_grad() cost.backward() _, preds = preds.max(2) preds = preds.transpose(1, 0).contiguous().view(-1) sim_preds = converter.decode(preds.data, preds_size.data, raw=False) for pred, target in zip(sim_preds, cpu_texts): if pred.strip() == target.strip(): n_correct += 1 train_distance +=distance.nlevenshtein(pred.strip(),target.strip(),method=2) train_accuracy = n_correct / float(batch_size) train_distance=train_distance/float(batch_size) if flage: lr = 0.0001 optimizer = optim.Adadelta(crnn.parameters(), lr=lr) optimizer.step() return cost,train_accuracy,train_distance
Example #29
Source File: Optim.py From graph-2-text with MIT License | 5 votes |
def set_parameters(self, params): self.params = [] self.sparse_params = [] for k, p in params: if p.requires_grad: if self.method != 'sparseadam' or "embed" not in k: self.params.append(p) else: self.sparse_params.append(p) if self.method == 'sgd': self.optimizer = optim.SGD(self.params, lr=self.lr) elif self.method == 'adagrad': self.optimizer = optim.Adagrad(self.params, lr=self.lr) for group in self.optimizer.param_groups: for p in group['params']: self.optimizer.state[p]['sum'] = self.optimizer\ .state[p]['sum'].fill_(self.adagrad_accum) elif self.method == 'adadelta': self.optimizer = optim.Adadelta(self.params, lr=self.lr) elif self.method == 'adam': self.optimizer = optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-9) elif self.method == 'sparseadam': self.optimizer = MultipleOptimizer( [optim.Adam(self.params, lr=self.lr, betas=self.betas, eps=1e-8), optim.SparseAdam(self.sparse_params, lr=self.lr, betas=self.betas, eps=1e-8)]) else: raise RuntimeError("Invalid optim method: " + self.method)
Example #30
Source File: model.py From reseg-pytorch with GNU General Public License v3.0 | 5 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='max', factor=lr_drop_factor, patience=lr_drop_patience, verbose=True)