Python util.AverageMeter() Examples
The following are 9
code examples of util.AverageMeter().
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
util
, or try the search function
.
Example #1
Source File: train.py From real-nvp with MIT License | 6 votes |
def train(epoch, net, trainloader, device, optimizer, loss_fn, max_grad_norm): print('\nEpoch: %d' % epoch) net.train() loss_meter = util.AverageMeter() with tqdm(total=len(trainloader.dataset)) as progress_bar: for x, _ in trainloader: x = x.to(device) optimizer.zero_grad() z, sldj = net(x, reverse=False) loss = loss_fn(z, sldj) loss_meter.update(loss.item(), x.size(0)) loss.backward() util.clip_grad_norm(optimizer, max_grad_norm) optimizer.step() progress_bar.set_postfix(loss=loss_meter.avg, bpd=util.bits_per_dim(x, loss_meter.avg)) progress_bar.update(x.size(0))
Example #2
Source File: train.py From glow with MIT License | 6 votes |
def train(epoch, net, trainloader, device, optimizer, scheduler, loss_fn, max_grad_norm): global global_step print('\nEpoch: %d' % epoch) net.train() loss_meter = util.AverageMeter() with tqdm(total=len(trainloader.dataset)) as progress_bar: for x, _ in trainloader: x = x.to(device) optimizer.zero_grad() z, sldj = net(x, reverse=False) loss = loss_fn(z, sldj) loss_meter.update(loss.item(), x.size(0)) loss.backward() if max_grad_norm > 0: util.clip_grad_norm(optimizer, max_grad_norm) optimizer.step() scheduler.step(global_step) progress_bar.set_postfix(nll=loss_meter.avg, bpd=util.bits_per_dim(x, loss_meter.avg), lr=optimizer.param_groups[0]['lr']) progress_bar.update(x.size(0)) global_step += x.size(0)
Example #3
Source File: train.py From real-nvp with MIT License | 5 votes |
def test(epoch, net, testloader, device, loss_fn, num_samples): global best_loss net.eval() loss_meter = util.AverageMeter() with torch.no_grad(): with tqdm(total=len(testloader.dataset)) as progress_bar: for x, _ in testloader: x = x.to(device) z, sldj = net(x, reverse=False) loss = loss_fn(z, sldj) loss_meter.update(loss.item(), x.size(0)) progress_bar.set_postfix(loss=loss_meter.avg, bpd=util.bits_per_dim(x, loss_meter.avg)) progress_bar.update(x.size(0)) # Save checkpoint if loss_meter.avg < best_loss: print('Saving...') state = { 'net': net.state_dict(), 'test_loss': loss_meter.avg, 'epoch': epoch, } os.makedirs('ckpts', exist_ok=True) torch.save(state, 'ckpts/best.pth.tar') best_loss = loss_meter.avg # Save samples and data images = sample(net, num_samples, device) os.makedirs('samples', exist_ok=True) images_concat = torchvision.utils.make_grid(images, nrow=int(num_samples ** 0.5), padding=2, pad_value=255) torchvision.utils.save_image(images_concat, 'samples/epoch_{}.png'.format(epoch))
Example #4
Source File: process.py From lsq-net with MIT License | 5 votes |
def validate(data_loader, model, criterion, epoch, monitors, args): losses = AverageMeter() top1 = AverageMeter() top5 = AverageMeter() batch_time = AverageMeter() total_sample = len(data_loader.sampler) batch_size = data_loader.batch_size steps_per_epoch = math.ceil(total_sample / batch_size) logger.info('Validation: %d samples (%d per mini-batch)', total_sample, batch_size) model.eval() end_time = time.time() for batch_idx, (inputs, targets) in enumerate(data_loader): with t.no_grad(): inputs = inputs.to(args.device.type) targets = targets.to(args.device.type) outputs = model(inputs) loss = criterion(outputs, targets) acc1, acc5 = accuracy(outputs.data, targets.data, topk=(1, 5)) losses.update(loss.item(), inputs.size(0)) top1.update(acc1.item(), inputs.size(0)) top5.update(acc5.item(), inputs.size(0)) batch_time.update(time.time() - end_time) end_time = time.time() if (batch_idx + 1) % args.log.print_freq == 0: for m in monitors: m.update(epoch, batch_idx + 1, steps_per_epoch, 'Validation', { 'Loss': losses, 'Top1': top1, 'Top5': top5, 'BatchTime': batch_time }) logger.info('==> Top1: %.3f Top5: %.3f Loss: %.3f\n', top1.avg, top5.avg, losses.avg) return top1.avg, top5.avg, losses.avg
Example #5
Source File: train.py From glow with MIT License | 5 votes |
def test(epoch, net, testloader, device, loss_fn, num_samples): global best_loss net.eval() loss_meter = util.AverageMeter() with tqdm(total=len(testloader.dataset)) as progress_bar: for x, _ in testloader: x = x.to(device) z, sldj = net(x, reverse=False) loss = loss_fn(z, sldj) loss_meter.update(loss.item(), x.size(0)) progress_bar.set_postfix(nll=loss_meter.avg, bpd=util.bits_per_dim(x, loss_meter.avg)) progress_bar.update(x.size(0)) # Save checkpoint if loss_meter.avg < best_loss: print('Saving...') state = { 'net': net.state_dict(), 'test_loss': loss_meter.avg, 'epoch': epoch, } os.makedirs('ckpts', exist_ok=True) torch.save(state, 'ckpts/best.pth.tar') best_loss = loss_meter.avg # Save samples and data images = sample(net, num_samples, device) os.makedirs('samples', exist_ok=True) images_concat = torchvision.utils.make_grid(images, nrow=int(num_samples ** 0.5), padding=2, pad_value=255) torchvision.utils.save_image(images_concat, 'samples/epoch_{}.png'.format(epoch))
Example #6
Source File: main.py From FlowNetPytorch with MIT License | 5 votes |
def validate(val_loader, model, epoch, output_writers): global args batch_time = AverageMeter() flow2_EPEs = AverageMeter() # switch to evaluate mode model.eval() end = time.time() for i, (input, target) in enumerate(val_loader): target = target.to(device) input = torch.cat(input,1).to(device) # compute output output = model(input) flow2_EPE = args.div_flow*realEPE(output, target, sparse=args.sparse) # record EPE flow2_EPEs.update(flow2_EPE.item(), target.size(0)) # measure elapsed time batch_time.update(time.time() - end) end = time.time() if i < len(output_writers): # log first output of first batches if epoch == 0: mean_values = torch.tensor([0.45,0.432,0.411], dtype=input.dtype).view(3,1,1) output_writers[i].add_image('GroundTruth', flow2rgb(args.div_flow * target[0], max_value=10), 0) output_writers[i].add_image('Inputs', (input[0,:3].cpu() + mean_values).clamp(0,1), 0) output_writers[i].add_image('Inputs', (input[0,3:].cpu() + mean_values).clamp(0,1), 1) output_writers[i].add_image('FlowNet Outputs', flow2rgb(args.div_flow * output[0], max_value=10), epoch) if i % args.print_freq == 0: print('Test: [{0}/{1}]\t Time {2}\t EPE {3}' .format(i, len(val_loader), batch_time, flow2_EPEs)) print(' * EPE {:.3f}'.format(flow2_EPEs.avg)) return flow2_EPEs.avg
Example #7
Source File: process.py From lsq-net with MIT License | 4 votes |
def train(train_loader, model, criterion, optimizer, lr_scheduler, epoch, monitors, args): losses = AverageMeter() top1 = AverageMeter() top5 = AverageMeter() batch_time = AverageMeter() total_sample = len(train_loader.sampler) batch_size = train_loader.batch_size steps_per_epoch = math.ceil(total_sample / batch_size) logger.info('Training: %d samples (%d per mini-batch)', total_sample, batch_size) model.train() end_time = time.time() for batch_idx, (inputs, targets) in enumerate(train_loader): inputs = inputs.to(args.device.type) targets = targets.to(args.device.type) outputs = model(inputs) loss = criterion(outputs, targets) acc1, acc5 = accuracy(outputs.data, targets.data, topk=(1, 5)) losses.update(loss.item(), inputs.size(0)) top1.update(acc1.item(), inputs.size(0)) top5.update(acc5.item(), inputs.size(0)) if lr_scheduler is not None: lr_scheduler.step(epoch=epoch, batch=batch_idx) optimizer.zero_grad() loss.backward() optimizer.step() batch_time.update(time.time() - end_time) end_time = time.time() if (batch_idx + 1) % args.log.print_freq == 0: for m in monitors: m.update(epoch, batch_idx + 1, steps_per_epoch, 'Training', { 'Loss': losses, 'Top1': top1, 'Top5': top5, 'BatchTime': batch_time, 'LR': optimizer.param_groups[0]['lr'] }) logger.info('==> Top1: %.3f Top5: %.3f Loss: %.3f\n', top1.avg, top5.avg, losses.avg) return top1.avg, top5.avg, losses.avg
Example #8
Source File: train.py From squad with MIT License | 4 votes |
def evaluate(model, data_loader, device, eval_file, max_len, use_squad_v2): nll_meter = util.AverageMeter() model.eval() pred_dict = {} with open(eval_file, 'r') as fh: gold_dict = json_load(fh) with torch.no_grad(), \ tqdm(total=len(data_loader.dataset)) as progress_bar: for cw_idxs, cc_idxs, qw_idxs, qc_idxs, y1, y2, ids in data_loader: # Setup for forward cw_idxs = cw_idxs.to(device) qw_idxs = qw_idxs.to(device) batch_size = cw_idxs.size(0) # Forward log_p1, log_p2 = model(cw_idxs, qw_idxs) y1, y2 = y1.to(device), y2.to(device) loss = F.nll_loss(log_p1, y1) + F.nll_loss(log_p2, y2) nll_meter.update(loss.item(), batch_size) # Get F1 and EM scores p1, p2 = log_p1.exp(), log_p2.exp() starts, ends = util.discretize(p1, p2, max_len, use_squad_v2) # Log info progress_bar.update(batch_size) progress_bar.set_postfix(NLL=nll_meter.avg) preds, _ = util.convert_tokens(gold_dict, ids.tolist(), starts.tolist(), ends.tolist(), use_squad_v2) pred_dict.update(preds) model.train() results = util.eval_dicts(gold_dict, pred_dict, use_squad_v2) results_list = [('NLL', nll_meter.avg), ('F1', results['F1']), ('EM', results['EM'])] if use_squad_v2: results_list.append(('AvNA', results['AvNA'])) results = OrderedDict(results_list) return results, pred_dict
Example #9
Source File: main.py From FlowNetPytorch with MIT License | 4 votes |
def train(train_loader, model, optimizer, epoch, train_writer): global n_iter, args batch_time = AverageMeter() data_time = AverageMeter() losses = AverageMeter() flow2_EPEs = AverageMeter() epoch_size = len(train_loader) if args.epoch_size == 0 else min(len(train_loader), args.epoch_size) # switch to train mode model.train() end = time.time() for i, (input, target) in enumerate(train_loader): # measure data loading time data_time.update(time.time() - end) target = target.to(device) input = torch.cat(input,1).to(device) # compute output output = model(input) if args.sparse: # Since Target pooling is not very precise when sparse, # take the highest resolution prediction and upsample it instead of downsampling target h, w = target.size()[-2:] output = [F.interpolate(output[0], (h,w)), *output[1:]] loss = multiscaleEPE(output, target, weights=args.multiscale_weights, sparse=args.sparse) flow2_EPE = args.div_flow * realEPE(output[0], target, sparse=args.sparse) # record loss and EPE losses.update(loss.item(), target.size(0)) train_writer.add_scalar('train_loss', loss.item(), n_iter) flow2_EPEs.update(flow2_EPE.item(), target.size(0)) # compute gradient and do optimization step optimizer.zero_grad() loss.backward() optimizer.step() # measure elapsed time batch_time.update(time.time() - end) end = time.time() if i % args.print_freq == 0: print('Epoch: [{0}][{1}/{2}]\t Time {3}\t Data {4}\t Loss {5}\t EPE {6}' .format(epoch, i, epoch_size, batch_time, data_time, losses, flow2_EPEs)) n_iter += 1 if i >= epoch_size: break return losses.avg, flow2_EPEs.avg