Python config.grad_clip() Examples
The following are 6
code examples of config.grad_clip().
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
config
, or try the search function
.
Example #1
Source File: main.py From QANet-pytorch with MIT License | 6 votes |
def train(model, optimizer, scheduler, ema, dataset, start, length): model.train() losses = [] for i in tqdm(range(start, length + start), total=length): optimizer.zero_grad() Cwid, Ccid, Qwid, Qcid, y1, y2, ids = dataset[i] Cwid, Ccid, Qwid, Qcid = Cwid.to(device), Ccid.to(device), Qwid.to(device), Qcid.to(device) p1, p2 = model(Cwid, Ccid, Qwid, Qcid) y1, y2 = y1.to(device), y2.to(device) loss1 = F.nll_loss(p1, y1, reduction='mean') loss2 = F.nll_loss(p2, y2, reduction='mean') loss = (loss1 + loss2) / 2 losses.append(loss.item()) loss.backward() optimizer.step() scheduler.step() for name, p in model.named_parameters(): if p.requires_grad: ema.update_parameter(name, p) torch.nn.utils.clip_grad_norm_(model.parameters(), config.grad_clip) loss_avg = np.mean(losses) print("STEP {:8d} loss {:8f}\n".format(i + 1, loss_avg))
Example #2
Source File: train.py From Mobile-Image-Matting with MIT License | 5 votes |
def train(train_loader, model, optimizer, epoch, logger): model.train() # train mode (dropout and batchnorm is used) losses = AverageMeter() # Batches for i, (img, alpha_label) in enumerate(train_loader): # Move to GPU, if available img = img.type(torch.FloatTensor).to(device) # [N, 4, 320, 320] alpha_label = alpha_label.type(torch.FloatTensor).to(device) # [N, 2, 320, 320] alpha_label = alpha_label.reshape((-1, 2, im_size * im_size)) # [N, 2, 320*320] # Forward prop. alpha_out = model(img) # [N, 320, 320] alpha_out = alpha_out.reshape((-1, 1, im_size * im_size)) # [N, 320*320] # Calculate loss # loss = criterion(alpha_out, alpha_label) loss = alpha_prediction_loss(alpha_out, alpha_label) # Back prop. optimizer.zero_grad() loss.backward() # Clip gradients clip_gradient(optimizer, grad_clip) # Update weights optimizer.step() # Keep track of metrics losses.update(loss.item()) # Print status if i % print_freq == 0: status = 'Epoch: [{0}][{1}/{2}]\t' \ 'Loss {loss.val:.4f} ({loss.avg:.4f})\t'.format(epoch, i, len(train_loader), loss=losses) logger.info(status) return losses.avg
Example #3
Source File: train.py From Deep-Image-Matting-PyTorch with MIT License | 5 votes |
def train(train_loader, model, optimizer, epoch, logger): model.train() # train mode (dropout and batchnorm is used) losses = AverageMeter() # Batches for i, (img, alpha_label) in enumerate(train_loader): # Move to GPU, if available img = img.type(torch.FloatTensor).to(device) # [N, 4, 320, 320] alpha_label = alpha_label.type(torch.FloatTensor).to(device) # [N, 320, 320] alpha_label = alpha_label.reshape((-1, 2, im_size * im_size)) # [N, 320*320] # Forward prop. alpha_out = model(img) # [N, 3, 320, 320] alpha_out = alpha_out.reshape((-1, 1, im_size * im_size)) # [N, 320*320] # Calculate loss # loss = criterion(alpha_out, alpha_label) loss = alpha_prediction_loss(alpha_out, alpha_label) # Back prop. optimizer.zero_grad() loss.backward() # Clip gradients clip_gradient(optimizer, grad_clip) # Update weights optimizer.step() # Keep track of metrics losses.update(loss.item()) # Print status if i % print_freq == 0: status = 'Epoch: [{0}][{1}/{2}]\t' \ 'Loss {loss.val:.4f} ({loss.avg:.4f})\t'.format(epoch, i, len(train_loader), loss=losses) logger.info(status) return losses.avg
Example #4
Source File: train.py From InsightFace-PyTorch with Apache License 2.0 | 4 votes |
def train(train_loader, model, metric_fc, criterion, optimizer, epoch): model.train() # train mode (dropout and batchnorm is used) metric_fc.train() losses = AverageMeter() top1_accs = AverageMeter() # Batches for i, (img, label) in enumerate(train_loader): # Move to GPU, if available img = img.to(device) label = label.to(device) # [N, 1] # Forward prop. feature = model(img) # embedding => [N, 512] output = metric_fc(feature, label) # class_id_out => [N, 10575] # Calculate loss loss = criterion(output, label) # Back prop. optimizer.zero_grad() loss.backward() # Clip gradients clip_gradient(optimizer, grad_clip) # Update weights optimizer.step() # Keep track of metrics losses.update(loss.item()) top1_accuracy = accuracy(output, label, 1) top1_accs.update(top1_accuracy) # Print status if i % print_freq == 0: logger.info('Epoch: [{0}][{1}/{2}]\t' 'Loss {loss.val:.4f} ({loss.avg:.4f})\t' 'Top1 Accuracy {top1_accs.val:.3f} ({top1_accs.avg:.3f})'.format(epoch, i, len(train_loader), loss=losses, top1_accs=top1_accs)) return losses.avg, top1_accs.avg
Example #5
Source File: train.py From CCF-BDCI2019-Multi-person-Face-Recognition-Competition-Baseline with MIT License | 4 votes |
def train(train_loader, model, metric_fc, criterion, optimizer, epoch, logger): model.train() # train mode (dropout and batchnorm is used) metric_fc.train() losses = AverageMeter() top1_accs = AverageMeter() # Batches for i, (img, label) in enumerate(train_loader): # Move to GPU, if available img = img.to(device) label = label.to(device) # [N, 1] # Forward prop. feature = model(img) # embedding => [N, 512] output = metric_fc(feature, label) # class_id_out => [N, 10575] # Calculate loss loss = criterion(output, label) # Back prop. optimizer.zero_grad() loss.backward() # Clip gradients optimizer.clip_gradient(grad_clip) # Update weights optimizer.step() # Keep track of metrics losses.update(loss.item()) top1_accuracy = accuracy(output, label, 1) top1_accs.update(top1_accuracy) # Print status if i % print_freq == 0: logger.info('Epoch: [{0}][{1}/{2}]\t' 'Loss {loss.val:.4f} ({loss.avg:.4f})\t' 'Top1 Accuracy {top1_accs.val:.3f} ({top1_accs.avg:.3f})'.format(epoch, i, len(train_loader), loss=losses, top1_accs=top1_accs)) return losses.avg, top1_accs.avg
Example #6
Source File: train.py From InsightFace-v2 with Apache License 2.0 | 4 votes |
def train(train_loader, model, metric_fc, criterion, optimizer, epoch, logger): model.train() # train mode (dropout and batchnorm is used) metric_fc.train() losses = AverageMeter() top5_accs = AverageMeter() # Batches for i, (img, label) in enumerate(train_loader): # Move to GPU, if available img = img.to(device) label = label.to(device) # [N, 1] # Forward prop. feature = model(img) # embedding => [N, 512] output = metric_fc(feature, label) # class_id_out => [N, 93431] # Calculate loss loss = criterion(output, label) # Back prop. optimizer.zero_grad() loss.backward() # Clip gradients optimizer.clip_gradient(grad_clip) # Update weights optimizer.step() # Keep track of metrics losses.update(loss.item()) top5_accuracy = accuracy(output, label, 5) top5_accs.update(top5_accuracy) # Print status if i % print_freq == 0: logger.info('Epoch: [{0}][{1}/{2}]\t' 'Loss {loss.val:.4f} ({loss.avg:.4f})\t' 'Top5 Accuracy {top5_accs.val:.3f} ({top5_accs.avg:.3f})'.format(epoch, i, len(train_loader), loss=losses, top5_accs=top5_accs)) return losses.avg, top5_accs.avg